var _gsScope = "undefined" != typeof module && module.exports && "undefined" != typeof global ? global : this || window;
(_gsScope._gsQueue || (_gsScope._gsQueue = [])).push(function() {
		"use strict";
		_gsScope._gsDefine("TweenMax", ["core.Animation", "core.SimpleTimeline", "TweenLite"], function(e, t, n) {
				var r = function(e) {
						var t, n = [],
							r = e.length;
						for(t = 0; t !== r; n.push(e[t++]));
						return n
					},
					i = function(e, t, n) {
						var r, i, s = e.cycle;
						for(r in s) i = s[r], e[r] = "function" == typeof i ? i(n, t[n]) : i[n % i.length];
						delete e.cycle
					},
					s = function(e, t, r) {
						n.call(this, e, t, r), this._cycle = 0, this._yoyo = this.vars.yoyo === !0 || !!this.vars.yoyoEase, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._dirty = !0, this.render = s.prototype.render
					},
					o = 1e-10,
					u = n._internals,
					a = u.isSelector,
					f = u.isArray,
					l = s.prototype = n.to({}, .1, {}),
					c = [];
				s.version = "1.20.2", l.constructor = s, l.kill()._gc = !1, s.killTweensOf = s.killDelayedCallsTo = n.killTweensOf, s.getTweensOf = n.getTweensOf, s.lagSmoothing = n.lagSmoothing, s.ticker = n.ticker, s.render = n.render, l.invalidate = function() {
					return this._yoyo = this.vars.yoyo === !0 || !!this.vars.yoyoEase, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._yoyoEase = null, this._uncache(!0), n.prototype.invalidate.call(this)
				}, l.updateTo = function(e, t) {
					var r, i = this.ratio,
						s = this.vars.immediateRender || e.immediateRender;
					t && this._startTime < this._timeline._time && (this._startTime = this._timeline._time, this._uncache(!1), this._gc ? this._enabled(!0, !1) : this._timeline.insert(this, this._startTime - this._delay));
					for(r in e) this.vars[r] = e[r];
					if(this._initted || s)
						if(t) this._initted = !1, s && this.render(0, !0, !0);
						else if(this._gc && this._enabled(!0, !1), this._notifyPluginsOfEnabled && this._firstPT && n._onPluginEvent("_onDisable", this), this._time / this._duration > .998) {
						var o = this._totalTime;
						this.render(0, !0, !1), this._initted = !1, this.render(o, !0, !1)
					} else if(this._initted = !1, this._init(), this._time > 0 || s)
						for(var u, a = 1 / (1 - i), f = this._firstPT; f;) u = f.s + f.c, f.c *= a, f.s = u - f.c, f = f._next;
					return this
				}, l.render = function(e, t, r) {
					this._initted || 0 === this._duration && this.vars.repeat && this.invalidate();
					var i, s, a, f, l, c, h, p, d, v = this._dirty ? this.totalDuration() : this._totalDuration,
						m = this._time,
						y = this._totalTime,
						b = this._cycle,
						w = this._duration,
						E = this._rawPrevTime;
					if(e >= v - 1e-7 && e >= 0 ? (this._totalTime = v, this._cycle = this._repeat, this._yoyo && 0 !== (1 & this._cycle) ? (this._time = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0) : (this._time = w, this.ratio = this._ease._calcEnd ? this._ease.getRatio(1) : 1), this._reversed || (i = !0, s = "onComplete", r = r || this._timeline.autoRemoveChildren), 0 === w && (this._initted || !this.vars.lazy || r) && (this._startTime === this._timeline._duration && (e = 0), (0 > E || 0 >= e && e >= -1e-7 || E === o && "isPause" !== this.data) && E !== e && (r = !0, E > o && (s = "onReverseComplete")), this._rawPrevTime = p = !t || e || E === e ? e : o)) : 1e-7 > e ? (this._totalTime = this._time = this._cycle = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0, (0 !== y || 0 === w && E > 0) && (s = "onReverseComplete", i = this._reversed), 0 > e && (this._active = !1, 0 === w && (this._initted || !this.vars.lazy || r) && (E >= 0 && (r = !0), this._rawPrevTime = p = !t || e || E === e ? e : o)), this._initted || (r = !0)) : (this._totalTime = this._time = e, 0 !== this._repeat && (f = w + this._repeatDelay, this._cycle = this._totalTime / f >> 0, 0 !== this._cycle && this._cycle === this._totalTime / f && e >= y && this._cycle--, this._time = this._totalTime - this._cycle * f, this._yoyo && 0 !== (1 & this._cycle) && (this._time = w - this._time, d = this._yoyoEase || this.vars.yoyoEase, d && (this._yoyoEase || (d !== !0 || this._initted ? this._yoyoEase = d = d === !0 ? this._ease : d instanceof Ease ? d : Ease.map[d] : (d = this.vars.ease, this._yoyoEase = d = d ? d instanceof Ease ? d : "function" == typeof d ? new Ease(d, this.vars.easeParams) : Ease.map[d] || n.defaultEase : n.defaultEase)), this.ratio = d ? 1 - d.getRatio((w - this._time) / w) : 0)), this._time > w ? this._time = w : this._time < 0 && (this._time = 0)), this._easeType && !d ? (l = this._time / w, c = this._easeType, h = this._easePower, (1 === c || 3 === c && l >= .5) && (l = 1 - l), 3 === c && (l *= 2), 1 === h ? l *= l : 2 === h ? l *= l * l : 3 === h ? l *= l * l * l : 4 === h && (l *= l * l * l * l), 1 === c ? this.ratio = 1 - l : 2 === c ? this.ratio = l : this._time / w < .5 ? this.ratio = l / 2 : this.ratio = 1 - l / 2) : d || (this.ratio = this._ease.getRatio(this._time / w))), m === this._time && !r && b === this._cycle) return void(y !== this._totalTime && this._onUpdate && (t || this._callback("onUpdate")));
					if(!this._initted) {
						if(this._init(), !this._initted || this._gc) return;
						if(!r && this._firstPT && (this.vars.lazy !== !1 && this._duration || this.vars.lazy && !this._duration)) return this._time = m, this._totalTime = y, this._rawPrevTime = E, this._cycle = b, u.lazyTweens.push(this), void(this._lazy = [e, t]);
						!this._time || i || d ? i && this._ease._calcEnd && !d && (this.ratio = this._ease.getRatio(0 === this._time ? 0 : 1)) : this.ratio = this._ease.getRatio(this._time / w)
					}
					for(this._lazy !== !1 && (this._lazy = !1), this._active || !this._paused && this._time !== m && e >= 0 && (this._active = !0), 0 === y && (2 === this._initted && e > 0 && this._init(), this._startAt && (e >= 0 ? this._startAt.render(e, t, r) : s || (s = "_dummyGS")), this.vars.onStart && (0 !== this._totalTime || 0 === w) && (t || this._callback("onStart"))), a = this._firstPT; a;) a.f ? a.t[a.p](a.c * this.ratio + a.s) : a.t[a.p] = a.c * this.ratio + a.s, a = a._next;
					this._onUpdate && (0 > e && this._startAt && this._startTime && this._startAt.render(e, t, r), t || (this._totalTime !== y || s) && this._callback("onUpdate")), this._cycle !== b && (t || this._gc || this.vars.onRepeat && this._callback("onRepeat")), s && (!this._gc || r) && (0 > e && this._startAt && !this._onUpdate && this._startTime && this._startAt.render(e, t, r), i && (this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !t && this.vars[s] && this._callback(s), 0 === w && this._rawPrevTime === o && p !== o && (this._rawPrevTime = 0))
				}, s.to = function(e, t, n) {
					return new s(e, t, n)
				}, s.from = function(e, t, n) {
					return n.runBackwards = !0, n.immediateRender = 0 != n.immediateRender, new s(e, t, n)
				}, s.fromTo = function(e, t, n, r) {
					return r.startAt = n, r.immediateRender = 0 != r.immediateRender && 0 != n.immediateRender, new s(e, t, r)
				}, s.staggerTo = s.allTo = function(e, t, o, u, l, h, p) {
					u = u || 0;
					var d, v, m, g, y = 0,
						b = [],
						w = function() {
							o.onComplete && o.onComplete.apply(o.onCompleteScope || this, arguments), l.apply(p || o.callbackScope || this, h || c)
						},
						E = o.cycle,
						S = o.startAt && o.startAt.cycle;
					for(f(e) || ("string" == typeof e && (e = n.selector(e) || e), a(e) && (e = r(e))), e = e || [], 0 > u && (e = r(e), e.reverse(), u *= -1), d = e.length - 1, m = 0; d >= m; m++) {
						v = {};
						for(g in o) v[g] = o[g];
						if(E && (i(v, e, m), null != v.duration && (t = v.duration, delete v.duration)), S) {
							S = v.startAt = {};
							for(g in o.startAt) S[g] = o.startAt[g];
							i(v.startAt, e, m)
						}
						v.delay = y + (v.delay || 0), m === d && l && (v.onComplete = w), b[m] = new s(e[m], t, v), y += u
					}
					return b
				}, s.staggerFrom = s.allFrom = function(e, t, n, r, i, o, u) {
					return n.runBackwards = !0, n.immediateRender = 0 != n.immediateRender, s.staggerTo(e, t, n, r, i, o, u)
				}, s.staggerFromTo = s.allFromTo = function(e, t, n, r, i, o, u, a) {
					return r.startAt = n, r.immediateRender = 0 != r.immediateRender && 0 != n.immediateRender, s.staggerTo(e, t, r, i, o, u, a)
				}, s.delayedCall = function(e, t, n, r, i) {
					return new s(t, 0, {
						delay: e,
						onComplete: t,
						onCompleteParams: n,
						callbackScope: r,
						onReverseComplete: t,
						onReverseCompleteParams: n,
						immediateRender: !1,
						useFrames: i,
						overwrite: 0
					})
				}, s.set = function(e, t) {
					return new s(e, 0, t)
				}, s.isTweening = function(e) {
					return n.getTweensOf(e, !0).length > 0
				};
				var h = function(e, t) {
						for(var r = [], i = 0, s = e._first; s;) s instanceof n ? r[i++] = s : (t && (r[i++] = s), r = r.concat(h(s, t)), i = r.length), s = s._next;
						return r
					},
					p = s.getAllTweens = function(t) {
						return h(e._rootTimeline, t).concat(h(e._rootFramesTimeline, t))
					};
				s.killAll = function(e, n, r, i) {
					null == n && (n = !0), null == r && (r = !0);
					var s, o, u, a = p(0 != i),
						f = a.length,
						l = n && r && i;
					for(u = 0; f > u; u++) o = a[u], (l || o instanceof t || (s = o.target === o.vars.onComplete) && r || n && !s) && (e ? o.totalTime(o._reversed ? 0 : o.totalDuration()) : o._enabled(!1, !1))
				}, s.killChildTweensOf = function(e, t) {
					if(null != e) {
						var i, o, l, c, h, p = u.tweenLookup;
						if("string" == typeof e && (e = n.selector(e) || e), a(e) && (e = r(e)), f(e))
							for(c = e.length; --c > -1;) s.killChildTweensOf(e[c], t);
						else {
							i = [];
							for(l in p)
								for(o = p[l].target.parentNode; o;) o === e && (i = i.concat(p[l].tweens)), o = o.parentNode;
							for(h = i.length, c = 0; h > c; c++) t && i[c].totalTime(i[c].totalDuration()), i[c]._enabled(!1, !1)
						}
					}
				};
				var d = function(e, n, r, i) {
					n = n !== !1, r = r !== !1, i = i !== !1;
					for(var s, o, u = p(i), a = n && r && i, f = u.length; --f > -1;) o = u[f], (a || o instanceof t || (s = o.target === o.vars.onComplete) && r || n && !s) && o.paused(e)
				};
				return s.pauseAll = function(e, t, n) {
					d(!0, e, t, n)
				}, s.resumeAll = function(e, t, n) {
					d(!1, e, t, n)
				}, s.globalTimeScale = function(t) {
					var r = e._rootTimeline,
						i = n.ticker.time;
					return arguments.length ? (t = t || o, r._startTime = i - (i - r._startTime) * r._timeScale / t, r = e._rootFramesTimeline, i = n.ticker.frame, r._startTime = i - (i - r._startTime) * r._timeScale / t, r._timeScale = e._rootTimeline._timeScale = t, t) : r._timeScale
				}, l.progress = function(e, t) {
					return arguments.length ? this.totalTime(this.duration() * (this._yoyo && 0 !== (1 & this._cycle) ? 1 - e : e) + this._cycle * (this._duration + this._repeatDelay), t) : this._time / this.duration()
				}, l.totalProgress = function(e, t) {
					return arguments.length ? this.totalTime(this.totalDuration() * e, t) : this._totalTime / this.totalDuration()
				}, l.time = function(e, t) {
					return arguments.length ? (this._dirty && this.totalDuration(), e > this._duration && (e = this._duration), this._yoyo && 0 !== (1 & this._cycle) ? e = this._duration - e + this._cycle * (this._duration + this._repeatDelay) : 0 !== this._repeat && (e += this._cycle * (this._duration + this._repeatDelay)), this.totalTime(e, t)) : this._time
				}, l.duration = function(t) {
					return arguments.length ? e.prototype.duration.call(this, t) : this._duration
				}, l.totalDuration = function(e) {
					return arguments.length ? -1 === this._repeat ? this : this.duration((e - this._repeat * this._repeatDelay) / (this._repeat + 1)) : (this._dirty && (this._totalDuration = -1 === this._repeat ? 999999999999 : this._duration * (this._repeat + 1) + this._repeatDelay * this._repeat, this._dirty = !1), this._totalDuration)
				}, l.repeat = function(e) {
					return arguments.length ? (this._repeat = e, this._uncache(!0)) : this._repeat
				}, l.repeatDelay = function(e) {
					return arguments.length ? (this._repeatDelay = e, this._uncache(!0)) : this._repeatDelay
				}, l.yoyo = function(e) {
					return arguments.length ? (this._yoyo = e, this) : this._yoyo
				}, s
			}, !0), _gsScope._gsDefine("TimelineLite", ["core.Animation", "core.SimpleTimeline", "TweenLite"], function(e, t, n) {
				var r = function(e) {
						t.call(this, e), this._labels = {}, this.autoRemoveChildren = this.vars.autoRemoveChildren === !0, this.smoothChildTiming = this.vars.smoothChildTiming === !0, this._sortChildren = !0, this._onUpdate = this.vars.onUpdate;
						var n, r, i = this.vars;
						for(r in i) n = i[r], a(n) && -1 !== n.join("").indexOf("{self}") && (i[r] = this._swapSelfInParams(n));
						a(i.tweens) && this.add(i.tweens, 0, i.align, i.stagger)
					},
					i = 1e-10,
					s = n._internals,
					o = r._internals = {},
					u = s.isSelector,
					a = s.isArray,
					f = s.lazyTweens,
					l = s.lazyRender,
					c = _gsScope._gsDefine.globals,
					h = function(e) {
						var t, n = {};
						for(t in e) n[t] = e[t];
						return n
					},
					p = function(e, t, n) {
						var r, i, s = e.cycle;
						for(r in s) i = s[r], e[r] = "function" == typeof i ? i(n, t[n]) : i[n % i.length];
						delete e.cycle
					},
					d = o.pauseCallback = function() {},
					v = function(e) {
						var t, n = [],
							r = e.length;
						for(t = 0; t !== r; n.push(e[t++]));
						return n
					},
					m = r.prototype = new t;
				return r.version = "1.20.2", m.constructor = r, m.kill()._gc = m._forcingPlayhead = m._hasPause = !1, m.to = function(e, t, r, i) {
					var s = r.repeat && c.TweenMax || n;
					return t ? this.add(new s(e, t, r), i) : this.set(e, r, i)
				}, m.from = function(e, t, r, i) {
					return this.add((r.repeat && c.TweenMax || n).from(e, t, r), i)
				}, m.fromTo = function(e, t, r, i, s) {
					var o = i.repeat && c.TweenMax || n;
					return t ? this.add(o.fromTo(e, t, r, i), s) : this.set(e, i, s)
				}, m.staggerTo = function(e, t, i, s, o, a, f, l) {
					var c, d, m = new r({
							onComplete: a,
							onCompleteParams: f,
							callbackScope: l,
							smoothChildTiming: this.smoothChildTiming
						}),
						g = i.cycle;
					for("string" == typeof e && (e = n.selector(e) || e), e = e || [], u(e) && (e = v(e)), s = s || 0, 0 > s && (e = v(e), e.reverse(), s *= -1), d = 0; d < e.length; d++) c = h(i), c.startAt && (c.startAt = h(c.startAt), c.startAt.cycle && p(c.startAt, e, d)), g && (p(c, e, d), null != c.duration && (t = c.duration, delete c.duration)), m.to(e[d], t, c, d * s);
					return this.add(m, o)
				}, m.staggerFrom = function(e, t, n, r, i, s, o, u) {
					return n.immediateRender = 0 != n.immediateRender, n.runBackwards = !0, this.staggerTo(e, t, n, r, i, s, o, u)
				}, m.staggerFromTo = function(e, t, n, r, i, s, o, u, a) {
					return r.startAt = n, r.immediateRender = 0 != r.immediateRender && 0 != n.immediateRender, this.staggerTo(e, t, r, i, s, o, u, a)
				}, m.call = function(e, t, r, i) {
					return this.add(n.delayedCall(0, e, t, r), i)
				}, m.set = function(e, t, r) {
					return r = this._parseTimeOrLabel(r, 0, !0), null == t.immediateRender && (t.immediateRender = r === this._time && !this._paused), this.add(new n(e, 0, t), r)
				}, r.exportRoot = function(e, t) {
					e = e || {}, null == e.smoothChildTiming && (e.smoothChildTiming = !0);
					var i, s, o = new r(e),
						u = o._timeline;
					for(null == t && (t = !0), u._remove(o, !0), o._startTime = 0, o._rawPrevTime = o._time = o._totalTime = u._time, i = u._first; i;) s = i._next, t && i instanceof n && i.target === i.vars.onComplete || o.add(i, i._startTime - i._delay), i = s;
					return u.add(o, 0), o
				}, m.add = function(i, s, o, u) {
					var f, l, c, h, p, d;
					if("number" != typeof s && (s = this._parseTimeOrLabel(s, 0, !0, i)), !(i instanceof e)) {
						if(i instanceof Array || i && i.push && a(i)) {
							for(o = o || "normal", u = u || 0, f = s, l = i.length, c = 0; l > c; c++) a(h = i[c]) && (h = new r({
								tweens: h
							})), this.add(h, f), "string" != typeof h && "function" != typeof h && ("sequence" === o ? f = h._startTime + h.totalDuration() / h._timeScale : "start" === o && (h._startTime -= h.delay())), f += u;
							return this._uncache(!0)
						}
						if("string" == typeof i) return this.addLabel(i, s);
						if("function" != typeof i) throw "Cannot add " + i + " into the timeline; it is not a tween, timeline, function, or string.";
						i = n.delayedCall(0, i)
					}
					if(t.prototype.add.call(this, i, s), i._time && i.render((this.rawTime() - i._startTime) * i._timeScale, !1, !1), (this._gc || this._time === this._duration) && !this._paused && this._duration < this.duration())
						for(p = this, d = p.rawTime() > i._startTime; p._timeline;) d && p._timeline.smoothChildTiming ? p.totalTime(p._totalTime, !0) : p._gc && p._enabled(!0, !1), p = p._timeline;
					return this
				}, m.remove = function(t) {
					if(t instanceof e) {
						this._remove(t, !1);
						var n = t._timeline = t.vars.useFrames ? e._rootFramesTimeline : e._rootTimeline;
						return t._startTime = (t._paused ? t._pauseTime : n._time) - (t._reversed ? t.totalDuration() - t._totalTime : t._totalTime) / t._timeScale, this
					}
					if(t instanceof Array || t && t.push && a(t)) {
						for(var r = t.length; --r > -1;) this.remove(t[r]);
						return this
					}
					return "string" == typeof t ? this.removeLabel(t) : this.kill(null, t)
				}, m._remove = function(e, n) {
					t.prototype._remove.call(this, e, n);
					var r = this._last;
					return r ? this._time > this.duration() && (this._time = this._duration, this._totalTime = this._totalDuration) : this._time = this._totalTime = this._duration = this._totalDuration = 0, this
				}, m.append = function(e, t) {
					return this.add(e, this._parseTimeOrLabel(null, t, !0, e))
				}, m.insert = m.insertMultiple = function(e, t, n, r) {
					return this.add(e, t || 0, n, r)
				}, m.appendMultiple = function(e, t, n, r) {
					return this.add(e, this._parseTimeOrLabel(null, t, !0, e), n, r)
				}, m.addLabel = function(e, t) {
					return this._labels[e] = this._parseTimeOrLabel(t), this
				}, m.addPause = function(e, t, r, i) {
					var s = n.delayedCall(0, d, r, i || this);
					return s.vars.onComplete = s.vars.onReverseComplete = t, s.data = "isPause", this._hasPause = !0, this.add(s, e)
				}, m.removeLabel = function(e) {
					return delete this._labels[e], this
				}, m.getLabelTime = function(e) {
					return null != this._labels[e] ? this._labels[e] : -1
				}, m._parseTimeOrLabel = function(t, n, r, i) {
					var s, o;
					if(i instanceof e && i.timeline === this) this.remove(i);
					else if(i && (i instanceof Array || i.push && a(i)))
						for(o = i.length; --o > -1;) i[o] instanceof e && i[o].timeline === this && this.remove(i[o]);
					if(s = this.duration() > 99999999999 ? this.recent().endTime(!1) : this._duration, "string" == typeof n) return this._parseTimeOrLabel(n, r && "number" == typeof t && null == this._labels[n] ? t - s : 0, r);
					if(n = n || 0, "string" != typeof t || !isNaN(t) && null == this._labels[t]) null == t && (t = s);
					else {
						if(o = t.indexOf("="), -1 === o) return null == this._labels[t] ? r ? this._labels[t] = s + n : n : this._labels[t] + n;
						n = parseInt(t.charAt(o - 1) + "1", 10) * Number(t.substr(o + 1)), t = o > 1 ? this._parseTimeOrLabel(t.substr(0, o - 1), 0, r) : s
					}
					return Number(t) + n
				}, m.seek = function(e, t) {
					return this.totalTime("number" == typeof e ? e : this._parseTimeOrLabel(e), t !== !1)
				}, m.stop = function() {
					return this.paused(!0)
				}, m.gotoAndPlay = function(e, t) {
					return this.play(e, t)
				}, m.gotoAndStop = function(e, t) {
					return this.pause(e, t)
				}, m.render = function(e, t, n) {
					this._gc && this._enabled(!0, !1);
					var r, s, o, u, a, c, h, p = this._dirty ? this.totalDuration() : this._totalDuration,
						d = this._time,
						v = this._startTime,
						m = this._timeScale,
						g = this._paused;
					if(e >= p - 1e-7 && e >= 0) this._totalTime = this._time = p, this._reversed || this._hasPausedChild() || (s = !0, u = "onComplete", a = !!this._timeline.autoRemoveChildren, 0 === this._duration && (0 >= e && e >= -1e-7 || this._rawPrevTime < 0 || this._rawPrevTime === i) && this._rawPrevTime !== e && this._first && (a = !0, this._rawPrevTime > i && (u = "onReverseComplete"))), this._rawPrevTime = this._duration || !t || e || this._rawPrevTime === e ? e : i, e = p + 1e-4;
					else if(1e-7 > e)
						if(this._totalTime = this._time = 0, (0 !== d || 0 === this._duration && this._rawPrevTime !== i && (this._rawPrevTime > 0 || 0 > e && this._rawPrevTime >= 0)) && (u = "onReverseComplete", s = this._reversed), 0 > e) this._active = !1, this._timeline.autoRemoveChildren && this._reversed ? (a = s = !0, u = "onReverseComplete") : this._rawPrevTime >= 0 && this._first && (a = !0), this._rawPrevTime = e;
						else {
							if(this._rawPrevTime = this._duration || !t || e || this._rawPrevTime === e ? e : i, 0 === e && s)
								for(r = this._first; r && 0 === r._startTime;) r._duration || (s = !1), r = r._next;
							e = 0, this._initted || (a = !0)
						}
					else {
						if(this._hasPause && !this._forcingPlayhead && !t) {
							if(e >= d)
								for(r = this._first; r && r._startTime <= e && !c;) r._duration || "isPause" !== r.data || r.ratio || 0 === r._startTime && 0 === this._rawPrevTime || (c = r), r = r._next;
							else
								for(r = this._last; r && r._startTime >= e && !c;) r._duration || "isPause" === r.data && r._rawPrevTime > 0 && (c = r), r = r._prev;
							c && (this._time = e = c._startTime, this._totalTime = e + this._cycle * (this._totalDuration + this._repeatDelay))
						}
						this._totalTime = this._time = this._rawPrevTime = e
					}
					if(this._time !== d && this._first || n || a || c) {
						if(this._initted || (this._initted = !0), this._active || !this._paused && this._time !== d && e > 0 && (this._active = !0), 0 === d && this.vars.onStart && (0 === this._time && this._duration || t || this._callback("onStart")), h = this._time, h >= d)
							for(r = this._first; r && (o = r._next, h === this._time && (!this._paused || g));)(r._active || r._startTime <= h && !r._paused && !r._gc) && (c === r && this.pause(), r._reversed ? r.render((r._dirty ? r.totalDuration() : r._totalDuration) - (e - r._startTime) * r._timeScale, t, n) : r.render((e - r._startTime) * r._timeScale, t, n)), r = o;
						else
							for(r = this._last; r && (o = r._prev, h === this._time && (!this._paused || g));) {
								if(r._active || r._startTime <= d && !r._paused && !r._gc) {
									if(c === r) {
										for(c = r._prev; c && c.endTime() > this._time;) c.render(c._reversed ? c.totalDuration() - (e - c._startTime) * c._timeScale : (e - c._startTime) * c._timeScale, t, n), c = c._prev;
										c = null, this.pause()
									}
									r._reversed ? r.render((r._dirty ? r.totalDuration() : r._totalDuration) - (e - r._startTime) * r._timeScale, t, n) : r.render((e - r._startTime) * r._timeScale, t, n)
								}
								r = o
							}
						this._onUpdate && (t || (f.length && l(), this._callback("onUpdate"))), u && (this._gc || (v === this._startTime || m !== this._timeScale) && (0 === this._time || p >= this.totalDuration()) && (s && (f.length && l(), this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !t && this.vars[u] && this._callback(u)))
					}
				}, m._hasPausedChild = function() {
					for(var e = this._first; e;) {
						if(e._paused || e instanceof r && e._hasPausedChild()) return !0;
						e = e._next
					}
					return !1
				}, m.getChildren = function(e, t, r, i) {
					i = i || -9999999999;
					for(var s = [], o = this._first, u = 0; o;) o._startTime < i || (o instanceof n ? t !== !1 && (s[u++] = o) : (r !== !1 && (s[u++] = o), e !== !1 && (s = s.concat(o.getChildren(!0, t, r)), u = s.length))), o = o._next;
					return s
				}, m.getTweensOf = function(e, t) {
					var r, i, s = this._gc,
						o = [],
						u = 0;
					for(s && this._enabled(!0, !0), r = n.getTweensOf(e), i = r.length; --i > -1;)(r[i].timeline === this || t && this._contains(r[i])) && (o[u++] = r[i]);
					return s && this._enabled(!1, !0), o
				}, m.recent = function() {
					return this._recent
				}, m._contains = function(e) {
					for(var t = e.timeline; t;) {
						if(t === this) return !0;
						t = t.timeline
					}
					return !1
				}, m.shiftChildren = function(e, t, n) {
					n = n || 0;
					for(var r, i = this._first, s = this._labels; i;) i._startTime >= n && (i._startTime += e), i = i._next;
					if(t)
						for(r in s) s[r] >= n && (s[r] += e);
					return this._uncache(!0)
				}, m._kill = function(e, t) {
					if(!e && !t) return this._enabled(!1, !1);
					for(var n = t ? this.getTweensOf(t) : this.getChildren(!0, !0, !1), r = n.length, i = !1; --r > -1;) n[r]._kill(e, t) && (i = !0);
					return i
				}, m.clear = function(e) {
					var t = this.getChildren(!1, !0, !0),
						n = t.length;
					for(this._time = this._totalTime = 0; --n > -1;) t[n]._enabled(!1, !1);
					return e !== !1 && (this._labels = {}), this._uncache(!0)
				}, m.invalidate = function() {
					for(var t = this._first; t;) t.invalidate(), t = t._next;
					return e.prototype.invalidate.call(this)
				}, m._enabled = function(e, n) {
					if(e === this._gc)
						for(var r = this._first; r;) r._enabled(e, !0), r = r._next;
					return t.prototype._enabled.call(this, e, n)
				}, m.totalTime = function(t, n, r) {
					this._forcingPlayhead = !0;
					var i = e.prototype.totalTime.apply(this, arguments);
					return this._forcingPlayhead = !1, i
				}, m.duration = function(e) {
					return arguments.length ? (0 !== this.duration() && 0 !== e && this.timeScale(this._duration / e), this) : (this._dirty && this.totalDuration(), this._duration)
				}, m.totalDuration = function(e) {
					if(!arguments.length) {
						if(this._dirty) {
							for(var t, n, r = 0, i = this._last, s = 999999999999; i;) t = i._prev, i._dirty && i.totalDuration(), i._startTime > s && this._sortChildren && !i._paused ? this.add(i, i._startTime - i._delay) : s = i._startTime, i._startTime < 0 && !i._paused && (r -= i._startTime, this._timeline.smoothChildTiming && (this._startTime += i._startTime / this._timeScale), this.shiftChildren(-i._startTime, !1, -9999999999), s = 0), n = i._startTime + i._totalDuration / i._timeScale, n > r && (r = n), i = t;
							this._duration = this._totalDuration = r, this._dirty = !1
						}
						return this._totalDuration
					}
					return e && this.totalDuration() ? this.timeScale(this._totalDuration / e) : this
				}, m.paused = function(t) {
					if(!t)
						for(var n = this._first, r = this._time; n;) n._startTime === r && "isPause" === n.data && (n._rawPrevTime = 0), n = n._next;
					return e.prototype.paused.apply(this, arguments)
				}, m.usesFrames = function() {
					for(var t = this._timeline; t._timeline;) t = t._timeline;
					return t === e._rootFramesTimeline
				}, m.rawTime = function(e) {
					return e && (this._paused || this._repeat && this.time() > 0 && this.totalProgress() < 1) ? this._totalTime % (this._duration + this._repeatDelay) : this._paused ? this._totalTime : (this._timeline.rawTime(e) - this._startTime) * this._timeScale
				}, r
			}, !0), _gsScope._gsDefine("TimelineMax", ["TimelineLite", "TweenLite", "easing.Ease"], function(e, t, n) {
				var r = function(t) {
						e.call(this, t), this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._cycle = 0, this._yoyo = this.vars.yoyo === !0, this._dirty = !0
					},
					i = 1e-10,
					s = t._internals,
					o = s.lazyTweens,
					u = s.lazyRender,
					a = _gsScope._gsDefine.globals,
					f = new n(null, null, 1, 0),
					l = r.prototype = new e;
				return l.constructor = r, l.kill()._gc = !1, r.version = "1.20.2", l.invalidate = function() {
					return this._yoyo = this.vars.yoyo === !0, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._uncache(!0), e.prototype.invalidate.call(this)
				}, l.addCallback = function(e, n, r, i) {
					return this.add(t.delayedCall(0, e, r, i), n)
				}, l.removeCallback = function(e, t) {
					if(e)
						if(null == t) this._kill(null, e);
						else
							for(var n = this.getTweensOf(e, !1), r = n.length, i = this._parseTimeOrLabel(t); --r > -1;) n[r]._startTime === i && n[r]._enabled(!1, !1);
					return this
				}, l.removePause = function(t) {
					return this.removeCallback(e._internals.pauseCallback, t)
				}, l.tweenTo = function(e, n) {
					n = n || {};
					var r, i, s, o = {
							ease: f,
							useFrames: this.usesFrames(),
							immediateRender: !1
						},
						u = n.repeat && a.TweenMax || t;
					for(i in n) o[i] = n[i];
					return o.time = this._parseTimeOrLabel(e), r = Math.abs(Number(o.time) - this._time) / this._timeScale || .001, s = new u(this, r, o), o.onStart = function() {
						s.target.paused(!0), s.vars.time !== s.target.time() && r === s.duration() && s.duration(Math.abs(s.vars.time - s.target.time()) / s.target._timeScale), n.onStart && n.onStart.apply(n.onStartScope || n.callbackScope || s, n.onStartParams || [])
					}, s
				}, l.tweenFromTo = function(e, t, n) {
					n = n || {}, e = this._parseTimeOrLabel(e), n.startAt = {
						onComplete: this.seek,
						onCompleteParams: [e],
						callbackScope: this
					}, n.immediateRender = n.immediateRender !== !1;
					var r = this.tweenTo(t, n);
					return r.duration(Math.abs(r.vars.time - e) / this._timeScale || .001)
				}, l.render = function(e, t, n) {
					this._gc && this._enabled(!0, !1);
					var r, s, a, f, l, c, p, d, v = this._dirty ? this.totalDuration() : this._totalDuration,
						m = this._duration,
						y = this._time,
						b = this._totalTime,
						w = this._startTime,
						E = this._timeScale,
						S = this._rawPrevTime,
						x = this._paused,
						T = this._cycle;
					if(e >= v - 1e-7 && e >= 0) this._locked || (this._totalTime = v, this._cycle = this._repeat), this._reversed || this._hasPausedChild() || (s = !0, f = "onComplete", l = !!this._timeline.autoRemoveChildren, 0 === this._duration && (0 >= e && e >= -1e-7 || 0 > S || S === i) && S !== e && this._first && (l = !0, S > i && (f = "onReverseComplete"))), this._rawPrevTime = this._duration || !t || e || this._rawPrevTime === e ? e : i, this._yoyo && 0 !== (1 & this._cycle) ? this._time = e = 0 : (this._time = m, e = m + 1e-4);
					else if(1e-7 > e)
						if(this._locked || (this._totalTime = this._cycle = 0), this._time = 0, (0 !== y || 0 === m && S !== i && (S > 0 || 0 > e && S >= 0) && !this._locked) && (f = "onReverseComplete", s = this._reversed), 0 > e) this._active = !1, this._timeline.autoRemoveChildren && this._reversed ? (l = s = !0, f = "onReverseComplete") : S >= 0 && this._first && (l = !0), this._rawPrevTime = e;
						else {
							if(this._rawPrevTime = m || !t || e || this._rawPrevTime === e ? e : i, 0 === e && s)
								for(r = this._first; r && 0 === r._startTime;) r._duration || (s = !1), r = r._next;
							e = 0, this._initted || (l = !0)
						}
					else if(0 === m && 0 > S && (l = !0), this._time = this._rawPrevTime = e, this._locked || (this._totalTime = e, 0 !== this._repeat && (c = m + this._repeatDelay, this._cycle = this._totalTime / c >> 0, 0 !== this._cycle && this._cycle === this._totalTime / c && e >= b && this._cycle--, this._time = this._totalTime - this._cycle * c, this._yoyo && 0 !== (1 & this._cycle) && (this._time = m - this._time), this._time > m ? (this._time = m, e = m + 1e-4) : this._time < 0 ? this._time = e = 0 : e = this._time)), this._hasPause && !this._forcingPlayhead && !t) {
						if(e = this._time, e >= y || this._repeat && T !== this._cycle)
							for(r = this._first; r && r._startTime <= e && !p;) r._duration || "isPause" !== r.data || r.ratio || 0 === r._startTime && 0 === this._rawPrevTime || (p = r), r = r._next;
						else
							for(r = this._last; r && r._startTime >= e && !p;) r._duration || "isPause" === r.data && r._rawPrevTime > 0 && (p = r), r = r._prev;
						p && p._startTime < m && (this._time = e = p._startTime, this._totalTime = e + this._cycle * (this._totalDuration + this._repeatDelay))
					}
					if(this._cycle !== T && !this._locked) {
						var N = this._yoyo && 0 !== (1 & T),
							C = N === (this._yoyo && 0 !== (1 & this._cycle)),
							k = this._totalTime,
							L = this._cycle,
							A = this._rawPrevTime,
							O = this._time;
						if(this._totalTime = T * m, this._cycle < T ? N = !N : this._totalTime += m, this._time = y, this._rawPrevTime = 0 === m ? S - 1e-4 : S, this._cycle = T, this._locked = !0, y = N ? 0 : m, this.render(y, t, 0 === m), t || this._gc || this.vars.onRepeat && (this._cycle = L, this._locked = !1, this._callback("onRepeat")), y !== this._time) return;
						if(C && (this._cycle = T, this._locked = !0, y = N ? m + 1e-4 : -0.0001, this.render(y, !0, !1)), this._locked = !1, this._paused && !x) return;
						this._time = O, this._totalTime = k, this._cycle = L, this._rawPrevTime = A
					}
					if(!(this._time !== y && this._first || n || l || p)) return void(b !== this._totalTime && this._onUpdate && (t || this._callback("onUpdate")));
					if(this._initted || (this._initted = !0), this._active || !this._paused && this._totalTime !== b && e > 0 && (this._active = !0), 0 === b && this.vars.onStart && (0 === this._totalTime && this._totalDuration || t || this._callback("onStart")), d = this._time, d >= y)
						for(r = this._first; r && (a = r._next, d === this._time && (!this._paused || x));)(r._active || r._startTime <= this._time && !r._paused && !r._gc) && (p === r && this.pause(), r._reversed ? r.render((r._dirty ? r.totalDuration() : r._totalDuration) - (e - r._startTime) * r._timeScale, t, n) : r.render((e - r._startTime) * r._timeScale, t, n)), r = a;
					else
						for(r = this._last; r && (a = r._prev, d === this._time && (!this._paused || x));) {
							if(r._active || r._startTime <= y && !r._paused && !r._gc) {
								if(p === r) {
									for(p = r._prev; p && p.endTime() > this._time;) p.render(p._reversed ? p.totalDuration() - (e - p._startTime) * p._timeScale : (e - p._startTime) * p._timeScale, t, n), p = p._prev;
									p = null, this.pause()
								}
								r._reversed ? r.render((r._dirty ? r.totalDuration() : r._totalDuration) - (e - r._startTime) * r._timeScale, t, n) : r.render((e - r._startTime) * r._timeScale, t, n)
							}
							r = a
						}
					this._onUpdate && (t || (o.length && u(), this._callback("onUpdate"))), f && (this._locked || this._gc || (w === this._startTime || E !== this._timeScale) && (0 === this._time || v >= this.totalDuration()) && (s && (o.length && u(), this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !t && this.vars[f] && this._callback(f)))
				}, l.getActive = function(e, t, n) {
					null == e && (e = !0), null == t && (t = !0), null == n && (n = !1);
					var r, i, s = [],
						o = this.getChildren(e, t, n),
						u = 0,
						a = o.length;
					for(r = 0; a > r; r++) i = o[r], i.isActive() && (s[u++] = i);
					return s
				}, l.getLabelAfter = function(e) {
					e || 0 !== e && (e = this._time);
					var t, n = this.getLabelsArray(),
						r = n.length;
					for(t = 0; r > t; t++)
						if(n[t].time > e) return n[t].name;
					return null
				}, l.getLabelBefore = function(e) {
					null == e && (e = this._time);
					for(var t = this.getLabelsArray(), n = t.length; --n > -1;)
						if(t[n].time < e) return t[n].name;
					return null
				}, l.getLabelsArray = function() {
					var e, t = [],
						n = 0;
					for(e in this._labels) t[n++] = {
						time: this._labels[e],
						name: e
					};
					return t.sort(function(e, t) {
						return e.time - t.time
					}), t
				}, l.invalidate = function() {
					return this._locked = !1, e.prototype.invalidate.call(this)
				}, l.progress = function(e, t) {
					return arguments.length ? this.totalTime(this.duration() * (this._yoyo && 0 !== (1 & this._cycle) ? 1 - e : e) + this._cycle * (this._duration + this._repeatDelay), t) : this._time / this.duration() || 0
				}, l.totalProgress = function(e, t) {
					return arguments.length ? this.totalTime(this.totalDuration() * e, t) : this._totalTime / this.totalDuration() || 0
				}, l.totalDuration = function(t) {
					return arguments.length ? -1 !== this._repeat && t ? this.timeScale(this.totalDuration() / t) : this : (this._dirty && (e.prototype.totalDuration.call(this), this._totalDuration = -1 === this._repeat ? 999999999999 : this._duration * (this._repeat + 1) + this._repeatDelay * this._repeat), this._totalDuration)
				}, l.time = function(e, t) {
					return arguments.length ? (this._dirty && this.totalDuration(), e > this._duration && (e = this._duration), this._yoyo && 0 !== (1 & this._cycle) ? e = this._duration - e + this._cycle * (this._duration + this._repeatDelay) : 0 !== this._repeat && (e += this._cycle * (this._duration + this._repeatDelay)), this.totalTime(e, t)) : this._time
				}, l.repeat = function(e) {
					return arguments.length ? (this._repeat = e, this._uncache(!0)) : this._repeat
				}, l.repeatDelay = function(e) {
					return arguments.length ? (this._repeatDelay = e, this._uncache(!0)) : this._repeatDelay
				}, l.yoyo = function(e) {
					return arguments.length ? (this._yoyo = e, this) : this._yoyo
				}, l.currentLabel = function(e) {
					return arguments.length ? this.seek(e, !0) : this.getLabelBefore(this._time + 1e-8)
				}, r
			}, !0),
			function() {
				var e = 180 / Math.PI,
					t = [],
					n = [],
					r = [],
					i = {},
					s = _gsScope._gsDefine.globals,
					o = function(e, t, n, r) {
						n === r && (n = r - (r - t) / 1e6), e === t && (t = e + (n - e) / 1e6), this.a = e, this.b = t, this.c = n, this.d = r, this.da = r - e, this.ca = n - e, this.ba = t - e
					},
					u = ",x,y,z,left,top,right,bottom,marginTop,marginLeft,marginRight,marginBottom,paddingLeft,paddingTop,paddingRight,paddingBottom,backgroundPosition,backgroundPosition_y,",
					a = function(e, t, n, r) {
						var i = {
								a: e
							},
							s = {},
							o = {},
							u = {
								c: r
							},
							a = (e + t) / 2,
							f = (t + n) / 2,
							l = (n + r) / 2,
							c = (a + f) / 2,
							h = (f + l) / 2,
							p = (h - c) / 8;
						return i.b = a + (e - a) / 4, s.b = c + p, i.c = s.a = (i.b + s.b) / 2, s.c = o.a = (c + h) / 2, o.b = h - p, u.b = l + (r - l) / 4, o.c = u.a = (o.b + u.b) / 2, [i, s, o, u]
					},
					f = function(e, i, s, o, u) {
						var f, l, c, h, p, d, v, m, g, y, w, E, S, x = e.length - 1,
							T = 0,
							N = e[0].a;
						for(f = 0; x > f; f++) p = e[T], l = p.a, c = p.d, h = e[T + 1].d, u ? (w = t[f], E = n[f], S = (E + w) * i * .25 / (o ? .5 : r[f] || .5), d = c - (c - l) * (o ? .5 * i : 0 !== w ? S / w : 0), v = c + (h - c) * (o ? .5 * i : 0 !== E ? S / E : 0), m = c - (d + ((v - d) * (3 * w / (w + E) + .5) / 4 || 0))) : (d = c - (c - l) * i * .5, v = c + (h - c) * i * .5, m = c - (d + v) / 2), d += m, v += m, p.c = g = d, 0 !== f ? p.b = N : p.b = N = p.a + .6 * (p.c - p.a), p.da = c - l, p.ca = g - l, p.ba = N - l, s ? (y = a(l, N, g, c), e.splice(T, 1, y[0], y[1], y[2], y[3]), T += 4) : T++, N = v;
						p = e[T], p.b = N, p.c = N + .4 * (p.d - N), p.da = p.d - p.a, p.ca = p.c - p.a, p.ba = N - p.a, s && (y = a(p.a, N, p.c, p.d), e.splice(T, 1, y[0], y[1], y[2], y[3]))
					},
					l = function(e, r, i, s) {
						var u, a, f, l, c, h, p = [];
						if(s)
							for(e = [s].concat(e), a = e.length; --a > -1;) "string" == typeof(h = e[a][r]) && "=" === h.charAt(1) && (e[a][r] = s[r] + Number(h.charAt(0) + h.substr(2)));
						if(u = e.length - 2, 0 > u) return p[0] = new o(e[0][r], 0, 0, e[0][r]), p;
						for(a = 0; u > a; a++) f = e[a][r], l = e[a + 1][r], p[a] = new o(f, 0, 0, l), i && (c = e[a + 2][r], t[a] = (t[a] || 0) + (l - f) * (l - f), n[a] = (n[a] || 0) + (c - l) * (c - l));
						return p[a] = new o(e[a][r], 0, 0, e[a + 1][r]), p
					},
					c = function(e, s, o, a, c, h) {
						var p, d, v, m, g, y, w, E, S = {},
							x = [],
							T = h || e[0];
						c = "string" == typeof c ? "," + c + "," : u, null == s && (s = 1);
						for(d in e[0]) x.push(d);
						if(e.length > 1) {
							for(E = e[e.length - 1], w = !0, p = x.length; --p > -1;)
								if(d = x[p], Math.abs(T[d] - E[d]) > .05) {
									w = !1;
									break
								}
							w && (e = e.concat(), h && e.unshift(h), e.push(e[1]), h = e[e.length - 3])
						}
						for(t.length = n.length = r.length = 0, p = x.length; --p > -1;) d = x[p], i[d] = -1 !== c.indexOf("," + d + ","), S[d] = l(e, d, i[d], h);
						for(p = t.length; --p > -1;) t[p] = Math.sqrt(t[p]), n[p] = Math.sqrt(n[p]);
						if(!a) {
							for(p = x.length; --p > -1;)
								if(i[d])
									for(v = S[x[p]], y = v.length - 1, m = 0; y > m; m++) g = v[m + 1].da / n[m] + v[m].da / t[m] || 0, r[m] = (r[m] || 0) + g * g;
							for(p = r.length; --p > -1;) r[p] = Math.sqrt(r[p])
						}
						for(p = x.length, m = o ? 4 : 1; --p > -1;) d = x[p], v = S[d], f(v, s, o, a, i[d]), w && (v.splice(0, m), v.splice(v.length - m, m));
						return S
					},
					h = function(e, t, n) {
						t = t || "soft";
						var r, i, s, u, a, f, l, c, h, p, d, v = {},
							m = "cubic" === t ? 3 : 2,
							y = "soft" === t,
							b = [];
						if(y && n && (e = [n].concat(e)), null == e || e.length < m + 1) throw "invalid Bezier data";
						for(h in e[0]) b.push(h);
						for(f = b.length; --f > -1;) {
							for(h = b[f], v[h] = a = [], p = 0, c = e.length, l = 0; c > l; l++) r = null == n ? e[l][h] : "string" == typeof(d = e[l][h]) && "=" === d.charAt(1) ? n[h] + Number(d.charAt(0) + d.substr(2)) : Number(d), y && l > 1 && c - 1 > l && (a[p++] = (r + a[p - 2]) / 2), a[p++] = r;
							for(c = p - m + 1, p = 0, l = 0; c > l; l += m) r = a[l], i = a[l + 1], s = a[l + 2], u = 2 === m ? 0 : a[l + 3], a[p++] = d = 3 === m ? new o(r, i, s, u) : new o(r, (2 * i + r) / 3, (2 * i + s) / 3, s);
							a.length = p
						}
						return v
					},
					p = function(e, t, n) {
						for(var r, i, s, o, u, a, f, l, c, h, p, d = 1 / n, v = e.length; --v > -1;)
							for(h = e[v], s = h.a, o = h.d - s, u = h.c - s, a = h.b - s, r = i = 0, l = 1; n >= l; l++) f = d * l, c = 1 - f, r = i - (i = (f * f * o + 3 * c * (f * u + c * a)) * f), p = v * n + l - 1, t[p] = (t[p] || 0) + r * r
					},
					d = function(e, t) {
						t = t >> 0 || 6;
						var n, r, i, s, o = [],
							u = [],
							a = 0,
							f = 0,
							l = t - 1,
							c = [],
							h = [];
						for(n in e) p(e[n], o, t);
						for(i = o.length, r = 0; i > r; r++) a += Math.sqrt(o[r]), s = r % t, h[s] = a, s === l && (f += a, s = r / t >> 0, c[s] = h, u[s] = f, a = 0, h = []);
						return {
							length: f,
							lengths: u,
							segments: c
						}
					},
					v = _gsScope._gsDefine.plugin({
						propName: "bezier",
						priority: -1,
						version: "1.3.8",
						API: 2,
						global: !0,
						init: function(e, t, n) {
							this._target = e, t instanceof Array && (t = {
								values: t
							}), this._func = {}, this._mod = {}, this._props = [], this._timeRes = null == t.timeResolution ? 6 : parseInt(t.timeResolution, 10);
							var r, i, s, o, u, a = t.values || [],
								f = {},
								l = a[0],
								p = t.autoRotate || n.vars.orientToBezier;
							this._autoRotate = p ? p instanceof Array ? p : [
								["x", "y", "rotation", p === !0 ? 0 : Number(p) || 0]
							] : null;
							for(r in l) this._props.push(r);
							for(s = this._props.length; --s > -1;) r = this._props[s], this._overwriteProps.push(r), i = this._func[r] = "function" == typeof e[r], f[r] = i ? e[r.indexOf("set") || "function" != typeof e["get" + r.substr(3)] ? r : "get" + r.substr(3)]() : parseFloat(e[r]), u || f[r] !== a[0][r] && (u = f);
							if(this._beziers = "cubic" !== t.type && "quadratic" !== t.type && "soft" !== t.type ? c(a, isNaN(t.curviness) ? 1 : t.curviness, !1, "thruBasic" === t.type, t.correlate, u) : h(a, t.type, f), this._segCount = this._beziers[r].length, this._timeRes) {
								var v = d(this._beziers, this._timeRes);
								this._length = v.length, this._lengths = v.lengths, this._segments = v.segments, this._l1 = this._li = this._s1 = this._si = 0, this._l2 = this._lengths[0], this._curSeg = this._segments[0], this._s2 = this._curSeg[0], this._prec = 1 / this._curSeg.length
							}
							if(p = this._autoRotate)
								for(this._initialRotations = [], p[0] instanceof Array || (this._autoRotate = p = [p]), s = p.length; --s > -1;) {
									for(o = 0; 3 > o; o++) r = p[s][o], this._func[r] = "function" == typeof e[r] ? e[r.indexOf("set") || "function" != typeof e["get" + r.substr(3)] ? r : "get" + r.substr(3)] : !1;
									r = p[s][2], this._initialRotations[s] = (this._func[r] ? this._func[r].call(this._target) : this._target[r]) || 0, this._overwriteProps.push(r)
								}
							return this._startRatio = n.vars.runBackwards ? 1 : 0, !0
						},
						set: function(t) {
							var n, r, i, s, o, u, a, f, l, c, h = this._segCount,
								p = this._func,
								d = this._target,
								v = t !== this._startRatio;
							if(this._timeRes) {
								if(l = this._lengths, c = this._curSeg, t *= this._length, i = this._li, t > this._l2 && h - 1 > i) {
									for(f = h - 1; f > i && (this._l2 = l[++i]) <= t;);
									this._l1 = l[i - 1], this._li = i, this._curSeg = c = this._segments[i], this._s2 = c[this._s1 = this._si = 0]
								} else if(t < this._l1 && i > 0) {
									for(; i > 0 && (this._l1 = l[--i]) >= t;);
									0 === i && t < this._l1 ? this._l1 = 0 : i++, this._l2 = l[i], this._li = i, this._curSeg = c = this._segments[i], this._s1 = c[(this._si = c.length - 1) - 1] || 0, this._s2 = c[this._si]
								}
								if(n = i, t -= this._l1, i = this._si, t > this._s2 && i < c.length - 1) {
									for(f = c.length - 1; f > i && (this._s2 = c[++i]) <= t;);
									this._s1 = c[i - 1], this._si = i
								} else if(t < this._s1 && i > 0) {
									for(; i > 0 && (this._s1 = c[--i]) >= t;);
									0 === i && t < this._s1 ? this._s1 = 0 : i++, this._s2 = c[i], this._si = i
								}
								u = (i + (t - this._s1) / (this._s2 - this._s1)) * this._prec || 0
							} else n = 0 > t ? 0 : t >= 1 ? h - 1 : h * t >> 0, u = (t - n * (1 / h)) * h;
							for(r = 1 - u, i = this._props.length; --i > -1;) s = this._props[i], o = this._beziers[s][n], a = (u * u * o.da + 3 * r * (u * o.ca + r * o.ba)) * u + o.a, this._mod[s] && (a = this._mod[s](a, d)), p[s] ? d[s](a) : d[s] = a;
							if(this._autoRotate) {
								var m, g, y, b, w, E, S, x = this._autoRotate;
								for(i = x.length; --i > -1;) s = x[i][2], E = x[i][3] || 0, S = x[i][4] === !0 ? 1 : e, o = this._beziers[x[i][0]], m = this._beziers[x[i][1]], o && m && (o = o[n], m = m[n], g = o.a + (o.b - o.a) * u, b = o.b + (o.c - o.b) * u, g += (b - g) * u, b += (o.c + (o.d - o.c) * u - b) * u, y = m.a + (m.b - m.a) * u, w = m.b + (m.c - m.b) * u, y += (w - y) * u, w += (m.c + (m.d - m.c) * u - w) * u, a = v ? Math.atan2(w - y, b - g) * S + E : this._initialRotations[i], this._mod[s] && (a = this._mod[s](a, d)), p[s] ? d[s](a) : d[s] = a)
							}
						}
					}),
					m = v.prototype;
				v.bezierThrough = c, v.cubicToQuadratic = a, v._autoCSS = !0, v.quadraticToCubic = function(e, t, n) {
					return new o(e, (2 * t + e) / 3, (2 * t + n) / 3, n)
				}, v._cssRegister = function() {
					var e = s.CSSPlugin;
					if(e) {
						var t = e._internals,
							n = t._parseToProxy,
							r = t._setPluginRatio,
							i = t.CSSPropTween;
						t._registerComplexSpecialProp("bezier", {
							parser: function(e, t, s, o, u, a) {
								t instanceof Array && (t = {
									values: t
								}), a = new v;
								var f, l, c, h = t.values,
									p = h.length - 1,
									d = [],
									m = {};
								if(0 > p) return u;
								for(f = 0; p >= f; f++) c = n(e, h[f], o, u, a, p !== f), d[f] = c.end;
								for(l in t) m[l] = t[l];
								return m.values = d, u = new i(e, "bezier", 0, 0, c.pt, 2), u.data = c, u.plugin = a, u.setRatio = r, 0 === m.autoRotate && (m.autoRotate = !0), !m.autoRotate || m.autoRotate instanceof Array || (f = m.autoRotate === !0 ? 0 : Number(m.autoRotate), m.autoRotate = null != c.end.left ? [
									["left", "top", "rotation", f, !1]
								] : null != c.end.x ? [
									["x", "y", "rotation", f, !1]
								] : !1), m.autoRotate && (o._transform || o._enableTransforms(!1), c.autoRotate = o._target._gsTransform, c.proxy.rotation = c.autoRotate.rotation || 0, o._overwriteProps.push("rotation")), a._onInitTween(c.proxy, m, o._tween), u
							}
						})
					}
				}, m._mod = function(e) {
					for(var t, n = this._overwriteProps, r = n.length; --r > -1;) t = e[n[r]], t && "function" == typeof t && (this._mod[n[r]] = t)
				}, m._kill = function(e) {
					var t, n, r = this._props;
					for(t in this._beziers)
						if(t in e)
							for(delete this._beziers[t], delete this._func[t], n = r.length; --n > -1;) r[n] === t && r.splice(n, 1);
					if(r = this._autoRotate)
						for(n = r.length; --n > -1;) e[r[n][2]] && r.splice(n, 1);
					return this._super._kill.call(this, e)
				}
			}(), _gsScope._gsDefine("plugins.CSSPlugin", ["plugins.TweenPlugin", "TweenLite"], function(e, t) {
				var n, r, i, s, o = function() {
						e.call(this, "css"), this._overwriteProps.length = 0, this.setRatio = o.prototype.setRatio
					},
					u = _gsScope._gsDefine.globals,
					a = {},
					f = o.prototype = new e("css");
				f.constructor = o, o.version = "1.20.0", o.API = 2, o.defaultTransformPerspective = 0, o.defaultSkewType = "compensated", o.defaultSmoothOrigin = !0, f = "px", o.suffixMap = {
					top: f,
					right: f,
					bottom: f,
					left: f,
					width: f,
					height: f,
					fontSize: f,
					padding: f,
					margin: f,
					perspective: f,
					lineHeight: ""
				};
				var l, c, h, p, d, v, m, g, y = /(?:\-|\.|\b)(\d|\.|e\-)+/g,
					b = /(?:\d|\-\d|\.\d|\-\.\d|\+=\d|\-=\d|\+=.\d|\-=\.\d)+/g,
					w = /(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b)/gi,
					E = /(?![+-]?\d*\.?\d+|[+-]|e[+-]\d+)[^0-9]/g,
					S = /(?:\d|\-|\+|=|#|\.)*/g,
					x = /opacity *= *([^)]*)/i,
					T = /opacity:([^;]*)/i,
					N = /alpha\(opacity *=.+?\)/i,
					C = /^(rgb|hsl)/,
					k = /([A-Z])/g,
					L = /-([a-z])/gi,
					A = /(^(?:url\(\"|url\())|(?:(\"\))$|\)$)/gi,
					O = function(e, t) {
						return t.toUpperCase()
					},
					M = /(?:Left|Right|Width)/i,
					_ = /(M11|M12|M21|M22)=[\d\-\.e]+/gi,
					D = /progid\:DXImageTransform\.Microsoft\.Matrix\(.+?\)/i,
					P = /,(?=[^\)]*(?:\(|$))/gi,
					H = /[\s,\(]/i,
					B = Math.PI / 180,
					j = 180 / Math.PI,
					F = {},
					I = {
						style: {}
					},
					q = _gsScope.document || {
						createElement: function() {
							return I
						}
					},
					R = function(e, t) {
						return q.createElementNS ? q.createElementNS(t || "http://www.w3.org/1999/xhtml", e) : q.createElement(e)
					},
					U = R("div"),
					z = R("img"),
					W = o._internals = {
						_specialProps: a
					},
					X = (_gsScope.navigator || {}).userAgent || "",
					V = function() {
						var e = X.indexOf("Android"),
							t = R("a");
						return h = -1 !== X.indexOf("Safari") && -1 === X.indexOf("Chrome") && (-1 === e || parseFloat(X.substr(e + 8, 2)) > 3), d = h && parseFloat(X.substr(X.indexOf("Version/") + 8, 2)) < 6, p = -1 !== X.indexOf("Firefox"), (/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(X) || /Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(X)) && (v = parseFloat(RegExp.$1)), t ? (t.style.cssText = "top:1px;opacity:.55;", /^0.55/.test(t.style.opacity)) : !1
					}(),
					$ = function(e) {
						return x.test("string" == typeof e ? e : (e.currentStyle ? e.currentStyle.filter : e.style.filter) || "") ? parseFloat(RegExp.$1) / 100 : 1
					},
					J = function(e) {
						_gsScope.console && console.log(e)
					},
					K = "",
					Q = "",
					G = function(e, t) {
						t = t || U;
						var n, r, i = t.style;
						if(void 0 !== i[e]) return e;
						for(e = e.charAt(0).toUpperCase() + e.substr(1), n = ["O", "Moz", "ms", "Ms", "Webkit"], r = 5; --r > -1 && void 0 === i[n[r] + e];);
						return r >= 0 ? (Q = 3 === r ? "ms" : n[r], K = "-" + Q.toLowerCase() + "-", Q + e) : null
					},
					Y = q.defaultView ? q.defaultView.getComputedStyle : function() {},
					Z = o.getStyle = function(e, t, n, r, i) {
						var s;
						return V || "opacity" !== t ? (!r && e.style[t] ? s = e.style[t] : (n = n || Y(e)) ? s = n[t] || n.getPropertyValue(t) || n.getPropertyValue(t.replace(k, "-$1").toLowerCase()) : e.currentStyle && (s = e.currentStyle[t]), null == i || s && "none" !== s && "auto" !== s && "auto auto" !== s ? s : i) : $(e)
					},
					et = W.convertToPixels = function(e, n, r, i, s) {
						if("px" === i || !i && "lineHeight" !== n) return r;
						if("auto" === i || !r) return 0;
						var u, a, f, l = M.test(n),
							c = e,
							h = U.style,
							p = 0 > r,
							d = 1 === r;
						if(p && (r = -r), d && (r *= 100), "lineHeight" !== n || i)
							if("%" === i && -1 !== n.indexOf("border")) u = r / 100 * (l ? e.clientWidth : e.clientHeight);
							else {
								if(h.cssText = "border:0 solid red;position:" + Z(e, "position") + ";line-height:0;", "%" !== i && c.appendChild && "v" !== i.charAt(0) && "rem" !== i) h[l ? "borderLeftWidth" : "borderTopWidth"] = r + i;
								else {
									if(c = e.parentNode || q.body, -1 !== Z(c, "display").indexOf("flex") && (h.position = "absolute"), a = c._gsCache, f = t.ticker.frame, a && l && a.time === f) return a.width * r / 100;
									h[l ? "width" : "height"] = r + i
								}
								c.appendChild(U), u = parseFloat(U[l ? "offsetWidth" : "offsetHeight"]), c.removeChild(U), l && "%" === i && o.cacheWidths !== !1 && (a = c._gsCache = c._gsCache || {}, a.time = f, a.width = u / r * 100), 0 !== u || s || (u = et(e, n, r, i, !0))
							}
						else a = Y(e).lineHeight, e.style.lineHeight = r, u = parseFloat(Y(e).lineHeight), e.style.lineHeight = a;
						return d && (u /= 100), p ? -u : u
					},
					tt = W.calculateOffset = function(e, t, n) {
						if("absolute" !== Z(e, "position", n)) return 0;
						var r = "left" === t ? "Left" : "Top",
							i = Z(e, "margin" + r, n);
						return e["offset" + r] - (et(e, t, parseFloat(i), i.replace(S, "")) || 0)
					},
					nt = function(e, t) {
						var n, r, i, s = {};
						if(t = t || Y(e, null))
							if(n = t.length)
								for(; --n > -1;) i = t[n], (-1 === i.indexOf("-transform") || At === i) && (s[i.replace(L, O)] = t.getPropertyValue(i));
							else
								for(n in t)(-1 === n.indexOf("Transform") || Lt === n) && (s[n] = t[n]);
						else if(t = e.currentStyle || e.style)
							for(n in t) "string" == typeof n && void 0 === s[n] && (s[n.replace(L, O)] = t[n]);
						return V || (s.opacity = $(e)), r = zt(e, t, !1), s.rotation = r.rotation, s.skewX = r.skewX, s.scaleX = r.scaleX, s.scaleY = r.scaleY, s.x = r.x, s.y = r.y, Mt && (s.z = r.z, s.rotationX = r.rotationX, s.rotationY = r.rotationY, s.scaleZ = r.scaleZ), s.filters && delete s.filters, s
					},
					rt = function(e, t, n, r, i) {
						var s, o, u, a = {},
							f = e.style;
						for(o in n) "cssText" !== o && "length" !== o && isNaN(o) && (t[o] !== (s = n[o]) || i && i[o]) && -1 === o.indexOf("Origin") && ("number" == typeof s || "string" == typeof s) && (a[o] = "auto" !== s || "left" !== o && "top" !== o ? "" !== s && "auto" !== s && "none" !== s || "string" != typeof t[o] || "" === t[o].replace(E, "") ? s : 0 : tt(e, o), void 0 !== f[o] && (u = new yt(f, o, f[o], u)));
						if(r)
							for(o in r) "className" !== o && (a[o] = r[o]);
						return {
							difs: a,
							firstMPT: u
						}
					},
					it = {
						width: ["Left", "Right"],
						height: ["Top", "Bottom"]
					},
					st = ["marginLeft", "marginRight", "marginTop", "marginBottom"],
					ot = function(e, t, n) {
						if("svg" === (e.nodeName + "").toLowerCase()) return(n || Y(e))[t] || 0;
						if(e.getCTM && qt(e)) return e.getBBox()[t] || 0;
						var r = parseFloat("width" === t ? e.offsetWidth : e.offsetHeight),
							i = it[t],
							s = i.length;
						for(n = n || Y(e, null); --s > -1;) r -= parseFloat(Z(e, "padding" + i[s], n, !0)) || 0, r -= parseFloat(Z(e, "border" + i[s] + "Width", n, !0)) || 0;
						return r
					},
					ut = function(e, t) {
						if("contain" === e || "auto" === e || "auto auto" === e) return e + " ";
						(null == e || "" === e) && (e = "0 0");
						var n, r = e.split(" "),
							i = -1 !== e.indexOf("left") ? "0%" : -1 !== e.indexOf("right") ? "100%" : r[0],
							s = -1 !== e.indexOf("top") ? "0%" : -1 !== e.indexOf("bottom") ? "100%" : r[1];
						if(r.length > 3 && !t) {
							for(r = e.split(", ").join(",").split(","), e = [], n = 0; n < r.length; n++) e.push(ut(r[n]));
							return e.join(",")
						}
						return null == s ? s = "center" === i ? "50%" : "0" : "center" === s && (s = "50%"), ("center" === i || isNaN(parseFloat(i)) && -1 === (i + "").indexOf("=")) && (i = "50%"), e = i + " " + s + (r.length > 2 ? " " + r[2] : ""), t && (t.oxp = -1 !== i.indexOf("%"), t.oyp = -1 !== s.indexOf("%"), t.oxr = "=" === i.charAt(1), t.oyr = "=" === s.charAt(1), t.ox = parseFloat(i.replace(E, "")), t.oy = parseFloat(s.replace(E, "")), t.v = e), t || e
					},
					at = function(e, t) {
						return "function" == typeof e && (e = e(g, m)), "string" == typeof e && "=" === e.charAt(1) ? parseInt(e.charAt(0) + "1", 10) * parseFloat(e.substr(2)) : parseFloat(e) - parseFloat(t) || 0
					},
					ft = function(e, t) {
						return "function" == typeof e && (e = e(g, m)), null == e ? t : "string" == typeof e && "=" === e.charAt(1) ? parseInt(e.charAt(0) + "1", 10) * parseFloat(e.substr(2)) + t : parseFloat(e) || 0
					},
					lt = function(e, t, n, r) {
						var i, s, o, u, a, f = 1e-6;
						return "function" == typeof e && (e = e(g, m)), null == e ? u = t : "number" == typeof e ? u = e : (i = 360, s = e.split("_"), a = "=" === e.charAt(1), o = (a ? parseInt(e.charAt(0) + "1", 10) * parseFloat(s[0].substr(2)) : parseFloat(s[0])) * (-1 === e.indexOf("rad") ? 1 : j) - (a ? 0 : t), s.length && (r && (r[n] = t + o), -1 !== e.indexOf("short") && (o %= i, o !== o % (i / 2) && (o = 0 > o ? o + i : o - i)), -1 !== e.indexOf("_cw") && 0 > o ? o = (o + 9999999999 * i) % i - (o / i | 0) * i : -1 !== e.indexOf("ccw") && o > 0 && (o = (o - 9999999999 * i) % i - (o / i | 0) * i)), u = t + o), f > u && u > -f && (u = 0), u
					},
					ct = {
						aqua: [0, 255, 255],
						lime: [0, 255, 0],
						silver: [192, 192, 192],
						black: [0, 0, 0],
						maroon: [128, 0, 0],
						teal: [0, 128, 128],
						blue: [0, 0, 255],
						navy: [0, 0, 128],
						white: [255, 255, 255],
						fuchsia: [255, 0, 255],
						olive: [128, 128, 0],
						yellow: [255, 255, 0],
						orange: [255, 165, 0],
						gray: [128, 128, 128],
						purple: [128, 0, 128],
						green: [0, 128, 0],
						red: [255, 0, 0],
						pink: [255, 192, 203],
						cyan: [0, 255, 255],
						transparent: [255, 255, 255, 0]
					},
					ht = function(e, t, n) {
						return e = 0 > e ? e + 1 : e > 1 ? e - 1 : e, 255 * (1 > 6 * e ? t + (n - t) * e * 6 : .5 > e ? n : 2 > 3 * e ? t + (n - t) * (2 / 3 - e) * 6 : t) + .5 | 0
					},
					pt = o.parseColor = function(e, t) {
						var n, r, i, s, o, u, a, f, l, c, h;
						if(e)
							if("number" == typeof e) n = [e >> 16, e >> 8 & 255, 255 & e];
							else {
								if("," === e.charAt(e.length - 1) && (e = e.substr(0, e.length - 1)), ct[e]) n = ct[e];
								else if("#" === e.charAt(0)) 4 === e.length && (r = e.charAt(1), i = e.charAt(2), s = e.charAt(3), e = "#" + r + r + i + i + s + s), e = parseInt(e.substr(1), 16), n = [e >> 16, e >> 8 & 255, 255 & e];
								else if("hsl" === e.substr(0, 3))
									if(n = h = e.match(y), t) {
										if(-1 !== e.indexOf("=")) return e.match(b)
									} else o = Number(n[0]) % 360 / 360, u = Number(n[1]) / 100, a = Number(n[2]) / 100, i = .5 >= a ? a * (u + 1) : a + u - a * u, r = 2 * a - i, n.length > 3 && (n[3] = Number(e[3])), n[0] = ht(o + 1 / 3, r, i), n[1] = ht(o, r, i), n[2] = ht(o - 1 / 3, r, i);
								else n = e.match(y) || ct.transparent;
								n[0] = Number(n[0]), n[1] = Number(n[1]), n[2] = Number(n[2]), n.length > 3 && (n[3] = Number(n[3]))
							}
						else n = ct.black;
						return t && !h && (r = n[0] / 255, i = n[1] / 255, s = n[2] / 255, f = Math.max(r, i, s), l = Math.min(r, i, s), a = (f + l) / 2, f === l ? o = u = 0 : (c = f - l, u = a > .5 ? c / (2 - f - l) : c / (f + l), o = f === r ? (i - s) / c + (s > i ? 6 : 0) : f === i ? (s - r) / c + 2 : (r - i) / c + 4, o *= 60), n[0] = o + .5 | 0, n[1] = 100 * u + .5 | 0, n[2] = 100 * a + .5 | 0), n
					},
					dt = function(e, t) {
						var n, r, i, s = e.match(vt) || [],
							o = 0,
							u = "";
						if(!s.length) return e;
						for(n = 0; n < s.length; n++) r = s[n], i = e.substr(o, e.indexOf(r, o) - o), o += i.length + r.length, r = pt(r, t), 3 === r.length && r.push(1), u += i + (t ? "hsla(" + r[0] + "," + r[1] + "%," + r[2] + "%," + r[3] : "rgba(" + r.join(",")) + ")";
						return u + e.substr(o)
					},
					vt = "(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3}){1,2}\\b";
				for(f in ct) vt += "|" + f + "\\b";
				vt = new RegExp(vt + ")", "gi"), o.colorStringFilter = function(e) {
					var t, n = e[0] + " " + e[1];
					vt.test(n) && (t = -1 !== n.indexOf("hsl(") || -1 !== n.indexOf("hsla("), e[0] = dt(e[0], t), e[1] = dt(e[1], t)), vt.lastIndex = 0
				}, t.defaultStringFilter || (t.defaultStringFilter = o.colorStringFilter);
				var mt = function(e, t, n, r) {
						if(null == e) return function(e) {
							return e
						};
						var i, s = t ? (e.match(vt) || [""])[0] : "",
							o = e.split(s).join("").match(w) || [],
							u = e.substr(0, e.indexOf(o[0])),
							a = ")" === e.charAt(e.length - 1) ? ")" : "",
							f = -1 !== e.indexOf(" ") ? " " : ",",
							l = o.length,
							c = l > 0 ? o[0].replace(y, "") : "";
						return l ? i = t ? function(e) {
							var t, h, p, d;
							if("number" == typeof e) e += c;
							else if(r && P.test(e)) {
								for(d = e.replace(P, "|").split("|"), p = 0; p < d.length; p++) d[p] = i(d[p]);
								return d.join(",")
							}
							if(t = (e.match(vt) || [s])[0], h = e.split(t).join("").match(w) || [], p = h.length, l > p--)
								for(; ++p < l;) h[p] = n ? h[(p - 1) / 2 | 0] : o[p];
							return u + h.join(f) + f + t + a + (-1 !== e.indexOf("inset") ? " inset" : "")
						} : function(e) {
							var t, s, h;
							if("number" == typeof e) e += c;
							else if(r && P.test(e)) {
								for(s = e.replace(P, "|").split("|"), h = 0; h < s.length; h++) s[h] = i(s[h]);
								return s.join(",")
							}
							if(t = e.match(w) || [], h = t.length, l > h--)
								for(; ++h < l;) t[h] = n ? t[(h - 1) / 2 | 0] : o[h];
							return u + t.join(f) + a
						} : function(e) {
							return e
						}
					},
					gt = function(e) {
						return e = e.split(","),
							function(t, n, r, i, s, o, u) {
								var a, f = (n + "").split(" ");
								for(u = {}, a = 0; 4 > a; a++) u[e[a]] = f[a] = f[a] || f[(a - 1) / 2 >> 0];
								return i.parse(t, u, s, o)
							}
					},
					yt = (W._setPluginRatio = function(e) {
						this.plugin.setRatio(e);
						for(var t, n, r, i, s, o = this.data, u = o.proxy, a = o.firstMPT, f = 1e-6; a;) t = u[a.v], a.r ? t = Math.round(t) : f > t && t > -f && (t = 0), a.t[a.p] = t, a = a._next;
						if(o.autoRotate && (o.autoRotate.rotation = o.mod ? o.mod(u.rotation, this.t) : u.rotation), 1 === e || 0 === e)
							for(a = o.firstMPT, s = 1 === e ? "e" : "b"; a;) {
								if(n = a.t, n.type) {
									if(1 === n.type) {
										for(i = n.xs0 + n.s + n.xs1, r = 1; r < n.l; r++) i += n["xn" + r] + n["xs" + (r + 1)];
										n[s] = i
									}
								} else n[s] = n.s + n.xs0;
								a = a._next
							}
					}, function(e, t, n, r, i) {
						this.t = e, this.p = t, this.v = n, this.r = i, r && (r._prev = this, this._next = r)
					}),
					bt = (W._parseToProxy = function(e, t, n, r, i, s) {
						var o, u, a, f, l, c = r,
							h = {},
							p = {},
							d = n._transform,
							v = F;
						for(n._transform = null, F = t, r = l = n.parse(e, t, r, i), F = v, s && (n._transform = d, c && (c._prev = null, c._prev && (c._prev._next = null))); r && r !== c;) {
							if(r.type <= 1 && (u = r.p, p[u] = r.s + r.c, h[u] = r.s, s || (f = new yt(r, "s", u, f, r.r), r.c = 0), 1 === r.type))
								for(o = r.l; --o > 0;) a = "xn" + o, u = r.p + "_" + a, p[u] = r.data[a], h[u] = r[a], s || (f = new yt(r, a, u, f, r.rxp[a]));
							r = r._next
						}
						return {
							proxy: h,
							end: p,
							firstMPT: f,
							pt: l
						}
					}, W.CSSPropTween = function(e, t, r, i, o, u, a, f, l, c, h) {
						this.t = e, this.p = t, this.s = r, this.c = i, this.n = a || t, e instanceof bt || s.push(this.n), this.r = f, this.type = u || 0, l && (this.pr = l, n = !0), this.b = void 0 === c ? r : c, this.e = void 0 === h ? r + i : h, o && (this._next = o, o._prev = this)
					}),
					wt = function(e, t, n, r, i, s) {
						var o = new bt(e, t, n, r - n, i, -1, s);
						return o.b = n, o.e = o.xs0 = r, o
					},
					Et = o.parseComplex = function(e, t, n, r, i, s, u, a, f, c) {
						n = n || s || "", "function" == typeof r && (r = r(g, m)), u = new bt(e, t, 0, 0, u, c ? 2 : 1, null, !1, a, n, r), r += "", i && vt.test(r + n) && (r = [n, r], o.colorStringFilter(r), n = r[0], r = r[1]);
						var h, p, d, v, w, E, S, x, T, N, C, k, L, A = n.split(", ").join(",").split(" "),
							O = r.split(", ").join(",").split(" "),
							M = A.length,
							_ = l !== !1;
						for((-1 !== r.indexOf(",") || -1 !== n.indexOf(",")) && (A = A.join(" ").replace(P, ", ").split(" "), O = O.join(" ").replace(P, ", ").split(" "), M = A.length), M !== O.length && (A = (s || "").split(" "), M = A.length), u.plugin = f, u.setRatio = c, vt.lastIndex = 0, h = 0; M > h; h++)
							if(v = A[h], w = O[h], x = parseFloat(v), x || 0 === x) u.appendXtra("", x, at(w, x), w.replace(b, ""), _ && -1 !== w.indexOf("px"), !0);
							else if(i && vt.test(v)) k = w.indexOf(")") + 1, k = ")" + (k ? w.substr(k) : ""), L = -1 !== w.indexOf("hsl") && V, N = w, v = pt(v, L), w = pt(w, L), T = v.length + w.length > 6, T && !V && 0 === w[3] ? (u["xs" + u.l] += u.l ? " transparent" : "transparent", u.e = u.e.split(O[h]).join("transparent")) : (V || (T = !1), L ? u.appendXtra(N.substr(0, N.indexOf("hsl")) + (T ? "hsla(" : "hsl("), v[0], at(w[0], v[0]), ",", !1, !0).appendXtra("", v[1], at(w[1], v[1]), "%,", !1).appendXtra("", v[2], at(w[2], v[2]), T ? "%," : "%" + k, !1) : u.appendXtra(N.substr(0, N.indexOf("rgb")) + (T ? "rgba(" : "rgb("), v[0], w[0] - v[0], ",", !0, !0).appendXtra("", v[1], w[1] - v[1], ",", !0).appendXtra("", v[2], w[2] - v[2], T ? "," : k, !0), T && (v = v.length < 4 ? 1 : v[3], u.appendXtra("", v, (w.length < 4 ? 1 : w[3]) - v, k, !1))), vt.lastIndex = 0;
						else if(E = v.match(y)) {
							if(S = w.match(b), !S || S.length !== E.length) return u;
							for(d = 0, p = 0; p < E.length; p++) C = E[p], N = v.indexOf(C, d), u.appendXtra(v.substr(d, N - d), Number(C), at(S[p], C), "", _ && "px" === v.substr(N + C.length, 2), 0 === p), d = N + C.length;
							u["xs" + u.l] += v.substr(d)
						} else u["xs" + u.l] += u.l || u["xs" + u.l] ? " " + w : w;
						if(-1 !== r.indexOf("=") && u.data) {
							for(k = u.xs0 + u.data.s, h = 1; h < u.l; h++) k += u["xs" + h] + u.data["xn" + h];
							u.e = k + u["xs" + h]
						}
						return u.l || (u.type = -1, u.xs0 = u.e), u.xfirst || u
					},
					St = 9;
				for(f = bt.prototype, f.l = f.pr = 0; --St > 0;) f["xn" + St] = 0, f["xs" + St] = "";
				f.xs0 = "", f._next = f._prev = f.xfirst = f.data = f.plugin = f.setRatio = f.rxp = null, f.appendXtra = function(e, t, n, r, i, s) {
					var o = this,
						u = o.l;
					return o["xs" + u] += s && (u || o["xs" + u]) ? " " + e : e || "", n || 0 === u || o.plugin ? (o.l++, o.type = o.setRatio ? 2 : 1, o["xs" + o.l] = r || "", u > 0 ? (o.data["xn" + u] = t + n, o.rxp["xn" + u] = i, o["xn" + u] = t, o.plugin || (o.xfirst = new bt(o, "xn" + u, t, n, o.xfirst || o, 0, o.n, i, o.pr), o.xfirst.xs0 = 0), o) : (o.data = {
						s: t + n
					}, o.rxp = {}, o.s = t, o.c = n, o.r = i, o)) : (o["xs" + u] += t + (r || ""), o)
				};
				var xt = function(e, t) {
						t = t || {}, this.p = t.prefix ? G(e) || e : e, a[e] = a[this.p] = this, this.format = t.formatter || mt(t.defaultValue, t.color, t.collapsible, t.multi), t.parser && (this.parse = t.parser), this.clrs = t.color, this.multi = t.multi, this.keyword = t.keyword, this.dflt = t.defaultValue, this.pr = t.priority || 0
					},
					Tt = W._registerComplexSpecialProp = function(e, t, n) {
						"object" != typeof t && (t = {
							parser: n
						});
						var r, i, s = e.split(","),
							o = t.defaultValue;
						for(n = n || [o], r = 0; r < s.length; r++) t.prefix = 0 === r && t.prefix, t.defaultValue = n[r] || o, i = new xt(s[r], t)
					},
					Nt = W._registerPluginProp = function(e) {
						if(!a[e]) {
							var t = e.charAt(0).toUpperCase() + e.substr(1) + "Plugin";
							Tt(e, {
								parser: function(e, n, r, i, s, o, f) {
									var l = u.com.greensock.plugins[t];
									return l ? (l._cssRegister(), a[r].parse(e, n, r, i, s, o, f)) : (J("Error: " + t + " js file not loaded."), s)
								}
							})
						}
					};
				f = xt.prototype, f.parseComplex = function(e, t, n, r, i, s) {
					var o, u, a, f, l, c, h = this.keyword;
					if(this.multi && (P.test(n) || P.test(t) ? (u = t.replace(P, "|").split("|"), a = n.replace(P, "|").split("|")) : h && (u = [t], a = [n])), a) {
						for(f = a.length > u.length ? a.length : u.length, o = 0; f > o; o++) t = u[o] = u[o] || this.dflt, n = a[o] = a[o] || this.dflt, h && (l = t.indexOf(h), c = n.indexOf(h), l !== c && (-1 === c ? u[o] = u[o].split(h).join("") : -1 === l && (u[o] += " " + h)));
						t = u.join(", "), n = a.join(", ")
					}
					return Et(e, this.p, t, n, this.clrs, this.dflt, r, this.pr, i, s)
				}, f.parse = function(e, t, n, r, s, o, u) {
					return this.parseComplex(e.style, this.format(Z(e, this.p, i, !1, this.dflt)), this.format(t), s, o)
				}, o.registerSpecialProp = function(e, t, n) {
					Tt(e, {
						parser: function(e, r, i, s, o, u, a) {
							var f = new bt(e, i, 0, 0, o, 2, i, !1, n);
							return f.plugin = u, f.setRatio = t(e, r, s._tween, i), f
						},
						priority: n
					})
				}, o.useSVGTransformAttr = !0;
				var Ct, kt = "scaleX,scaleY,scaleZ,x,y,z,skewX,skewY,rotation,rotationX,rotationY,perspective,xPercent,yPercent".split(","),
					Lt = G("transform"),
					At = K + "transform",
					Ot = G("transformOrigin"),
					Mt = null !== G("perspective"),
					_t = W.Transform = function() {
						this.perspective = parseFloat(o.defaultTransformPerspective) || 0, this.force3D = o.defaultForce3D !== !1 && Mt ? o.defaultForce3D || "auto" : !1
					},
					Dt = _gsScope.SVGElement,
					Pt = function(e, t, n) {
						var r, i = q.createElementNS("http://www.w3.org/2000/svg", e),
							s = /([a-z])([A-Z])/g;
						for(r in n) i.setAttributeNS(null, r.replace(s, "$1-$2").toLowerCase(), n[r]);
						return t.appendChild(i), i
					},
					Ht = q.documentElement || {},
					Bt = function() {
						var e, t, n, r = v || /Android/i.test(X) && !_gsScope.chrome;
						return q.createElementNS && !r && (e = Pt("svg", Ht), t = Pt("rect", e, {
							width: 100,
							height: 50,
							x: 100
						}), n = t.getBoundingClientRect().width, t.style[Ot] = "50% 50%", t.style[Lt] = "scaleX(0.5)", r = n === t.getBoundingClientRect().width && (!p || !Mt), Ht.removeChild(e)), r
					}(),
					jt = function(e, t, n, r, i, s) {
						var u, a, f, l, c, h, p, d, v, m, g, y, b, w, E = e._gsTransform,
							S = Ut(e, !0);
						E && (b = E.xOrigin, w = E.yOrigin), (!r || (u = r.split(" ")).length < 2) && (p = e.getBBox(), 0 === p.x && 0 === p.y && p.width + p.height === 0 && (p = {
							x: parseFloat(e.hasAttribute("x") ? e.getAttribute("x") : e.hasAttribute("cx") ? e.getAttribute("cx") : 0) || 0,
							y: parseFloat(e.hasAttribute("y") ? e.getAttribute("y") : e.hasAttribute("cy") ? e.getAttribute("cy") : 0) || 0,
							width: 0,
							height: 0
						}), t = ut(t).split(" "), u = [(-1 !== t[0].indexOf("%") ? parseFloat(t[0]) / 100 * p.width : parseFloat(t[0])) + p.x, (-1 !== t[1].indexOf("%") ? parseFloat(t[1]) / 100 * p.height : parseFloat(t[1])) + p.y]), n.xOrigin = l = parseFloat(u[0]), n.yOrigin = c = parseFloat(u[1]), r && S !== Rt && (h = S[0], p = S[1], d = S[2], v = S[3], m = S[4], g = S[5], y = h * v - p * d, y && (a = l * (v / y) + c * (-d / y) + (d * g - v * m) / y, f = l * (-p / y) + c * (h / y) - (h * g - p * m) / y, l = n.xOrigin = u[0] = a, c = n.yOrigin = u[1] = f)), E && (s && (n.xOffset = E.xOffset, n.yOffset = E.yOffset, E = n), i || i !== !1 && o.defaultSmoothOrigin !== !1 ? (a = l - b, f = c - w, E.xOffset += a * S[0] + f * S[2] - a, E.yOffset += a * S[1] + f * S[3] - f) : E.xOffset = E.yOffset = 0), s || e.setAttribute("data-svg-origin", u.join(" "))
					},
					Ft = function(e) {
						var t, n = R("svg", this.ownerSVGElement.getAttribute("xmlns") || "http://www.w3.org/2000/svg"),
							r = this.parentNode,
							i = this.nextSibling,
							s = this.style.cssText;
						if(Ht.appendChild(n), n.appendChild(this), this.style.display = "block", e) try {
							t = this.getBBox(), this._originalGetBBox = this.getBBox, this.getBBox = Ft
						} catch(o) {} else this._originalGetBBox && (t = this._originalGetBBox());
						return i ? r.insertBefore(this, i) : r.appendChild(this), Ht.removeChild(n), this.style.cssText = s, t
					},
					It = function(e) {
						try {
							return e.getBBox()
						} catch(t) {
							return Ft.call(e, !0)
						}
					},
					qt = function(e) {
						return !(!(Dt && e.getCTM && It(e)) || e.parentNode && !e.ownerSVGElement)
					},
					Rt = [1, 0, 0, 1, 0, 0],
					Ut = function(e, t) {
						var n, r, i, s, o, u, a = e._gsTransform || new _t,
							f = 1e5,
							l = e.style;
						if(Lt ? r = Z(e, At, null, !0) : e.currentStyle && (r = e.currentStyle.filter.match(_), r = r && 4 === r.length ? [r[0].substr(4), Number(r[2].substr(4)), Number(r[1].substr(4)), r[3].substr(4), a.x || 0, a.y || 0].join(",") : ""), n = !r || "none" === r || "matrix(1, 0, 0, 1, 0, 0)" === r, !Lt || !(u = "none" === Y(e).display) && e.parentNode || (u && (s = l.display, l.display = "block"), e.parentNode || (o = 1, Ht.appendChild(e)), r = Z(e, At, null, !0), n = !r || "none" === r || "matrix(1, 0, 0, 1, 0, 0)" === r, s ? l.display = s : u && $t(l, "display"), o && Ht.removeChild(e)), (a.svg || e.getCTM && qt(e)) && (n && -1 !== (l[Lt] + "").indexOf("matrix") && (r = l[Lt], n = 0), i = e.getAttribute("transform"), n && i && (-1 !== i.indexOf("matrix") ? (r = i, n = 0) : -1 !== i.indexOf("translate") && (r = "matrix(1,0,0,1," + i.match(/(?:\-|\b)[\d\-\.e]+\b/gi).join(",") + ")", n = 0))), n) return Rt;
						for(i = (r || "").match(y) || [], St = i.length; --St > -1;) s = Number(i[St]), i[St] = (o = s - (s |= 0)) ? (o * f + (0 > o ? -0.5 : .5) | 0) / f + s : s;
						return t && i.length > 6 ? [i[0], i[1], i[4], i[5], i[12], i[13]] : i
					},
					zt = W.getTransform = function(e, n, r, i) {
						if(e._gsTransform && r && !i) return e._gsTransform;
						var s, u, a, f, l, c, h = r ? e._gsTransform || new _t : new _t,
							p = h.scaleX < 0,
							d = 2e-5,
							v = 1e5,
							m = Mt ? parseFloat(Z(e, Ot, n, !1, "0 0 0").split(" ")[2]) || h.zOrigin || 0 : 0,
							g = parseFloat(o.defaultTransformPerspective) || 0;
						if(h.svg = !!e.getCTM && !!qt(e), h.svg && (jt(e, Z(e, Ot, n, !1, "50% 50%") + "", h, e.getAttribute("data-svg-origin")), Ct = o.useSVGTransformAttr || Bt), s = Ut(e), s !== Rt) {
							if(16 === s.length) {
								var y, b, w, E, S, x = s[0],
									T = s[1],
									N = s[2],
									C = s[3],
									k = s[4],
									L = s[5],
									A = s[6],
									O = s[7],
									M = s[8],
									_ = s[9],
									D = s[10],
									P = s[12],
									H = s[13],
									B = s[14],
									F = s[11],
									I = Math.atan2(A, D);
								h.zOrigin && (B = -h.zOrigin, P = M * B - s[12], H = _ * B - s[13], B = D * B + h.zOrigin - s[14]), h.rotationX = I * j, I && (E = Math.cos(-I), S = Math.sin(-I), y = k * E + M * S, b = L * E + _ * S, w = A * E + D * S, M = k * -S + M * E, _ = L * -S + _ * E, D = A * -S + D * E, F = O * -S + F * E, k = y, L = b, A = w), I = Math.atan2(-N, D), h.rotationY = I * j, I && (E = Math.cos(-I), S = Math.sin(-I), y = x * E - M * S, b = T * E - _ * S, w = N * E - D * S, _ = T * S + _ * E, D = N * S + D * E, F = C * S + F * E, x = y, T = b, N = w), I = Math.atan2(T, x), h.rotation = I * j, I && (E = Math.cos(I), S = Math.sin(I), y = x * E + T * S, b = k * E + L * S, w = M * E + _ * S, T = T * E - x * S, L = L * E - k * S, _ = _ * E - M * S, x = y, k = b, M = w), h.rotationX && Math.abs(h.rotationX) + Math.abs(h.rotation) > 359.9 && (h.rotationX = h.rotation = 0, h.rotationY = 180 - h.rotationY), I = Math.atan2(k, L), h.scaleX = (Math.sqrt(x * x + T * T + N * N) * v + .5 | 0) / v, h.scaleY = (Math.sqrt(L * L + A * A) * v + .5 | 0) / v, h.scaleZ = (Math.sqrt(M * M + _ * _ + D * D) * v + .5 | 0) / v, x /= h.scaleX, k /= h.scaleY, T /= h.scaleX, L /= h.scaleY, Math.abs(I) > d ? (h.skewX = I * j, k = 0, "simple" !== h.skewType && (h.scaleY *= 1 / Math.cos(I))) : h.skewX = 0, h.perspective = F ? 1 / (0 > F ? -F : F) : 0, h.x = P, h.y = H, h.z = B, h.svg && (h.x -= h.xOrigin - (h.xOrigin * x - h.yOrigin * k), h.y -= h.yOrigin - (h.yOrigin * T - h.xOrigin * L))
							} else if(!Mt || i || !s.length || h.x !== s[4] || h.y !== s[5] || !h.rotationX && !h.rotationY) {
								var q = s.length >= 6,
									R = q ? s[0] : 1,
									U = s[1] || 0,
									z = s[2] || 0,
									W = q ? s[3] : 1;
								h.x = s[4] || 0, h.y = s[5] || 0, a = Math.sqrt(R * R + U * U), f = Math.sqrt(W * W + z * z), l = R || U ? Math.atan2(U, R) * j : h.rotation || 0, c = z || W ? Math.atan2(z, W) * j + l : h.skewX || 0, h.scaleX = a, h.scaleY = f, h.rotation = l, h.skewX = c, Mt && (h.rotationX = h.rotationY = h.z = 0, h.perspective = g, h.scaleZ = 1), h.svg && (h.x -= h.xOrigin - (h.xOrigin * R + h.yOrigin * z), h.y -= h.yOrigin - (h.xOrigin * U + h.yOrigin * W))
							}
							Math.abs(h.skewX) > 90 && Math.abs(h.skewX) < 270 && (p ? (h.scaleX *= -1, h.skewX += h.rotation <= 0 ? 180 : -180, h.rotation += h.rotation <= 0 ? 180 : -180) : (h.scaleY *= -1, h.skewX += h.skewX <= 0 ? 180 : -180)), h.zOrigin = m;
							for(u in h) h[u] < d && h[u] > -d && (h[u] = 0)
						}
						return r && (e._gsTransform = h, h.svg && (Ct && e.style[Lt] ? t.delayedCall(.001, function() {
							$t(e.style, Lt)
						}) : !Ct && e.getAttribute("transform") && t.delayedCall(.001, function() {
							e.removeAttribute("transform")
						}))), h
					},
					Wt = function(e) {
						var t, n, r = this.data,
							i = -r.rotation * B,
							s = i + r.skewX * B,
							o = 1e5,
							u = (Math.cos(i) * r.scaleX * o | 0) / o,
							a = (Math.sin(i) * r.scaleX * o | 0) / o,
							f = (Math.sin(s) * -r.scaleY * o | 0) / o,
							l = (Math.cos(s) * r.scaleY * o | 0) / o,
							c = this.t.style,
							h = this.t.currentStyle;
						if(h) {
							n = a, a = -f, f = -n, t = h.filter, c.filter = "";
							var p, d, m = this.t.offsetWidth,
								g = this.t.offsetHeight,
								y = "absolute" !== h.position,
								b = "progid:DXImageTransform.Microsoft.Matrix(M11=" + u + ", M12=" + a + ", M21=" + f + ", M22=" + l,
								w = r.x + m * r.xPercent / 100,
								E = r.y + g * r.yPercent / 100;
							if(null != r.ox && (p = (r.oxp ? m * r.ox * .01 : r.ox) - m / 2, d = (r.oyp ? g * r.oy * .01 : r.oy) - g / 2, w += p - (p * u + d * a), E += d - (p * f + d * l)), y ? (p = m / 2, d = g / 2, b += ", Dx=" + (p - (p * u + d * a) + w) + ", Dy=" + (d - (p * f + d * l) + E) + ")") : b += ", sizingMethod='auto expand')", -1 !== t.indexOf("DXImageTransform.Microsoft.Matrix(") ? c.filter = t.replace(D, b) : c.filter = b + " " + t, (0 === e || 1 === e) && 1 === u && 0 === a && 0 === f && 1 === l && (y && -1 === b.indexOf("Dx=0, Dy=0") || x.test(t) && 100 !== parseFloat(RegExp.$1) || -1 === t.indexOf(t.indexOf("Alpha")) && c.removeAttribute("filter")), !y) {
								var T, N, C, k = 8 > v ? 1 : -1;
								for(p = r.ieOffsetX || 0, d = r.ieOffsetY || 0, r.ieOffsetX = Math.round((m - ((0 > u ? -u : u) * m + (0 > a ? -a : a) * g)) / 2 + w), r.ieOffsetY = Math.round((g - ((0 > l ? -l : l) * g + (0 > f ? -f : f) * m)) / 2 + E), St = 0; 4 > St; St++) N = st[St], T = h[N], n = -1 !== T.indexOf("px") ? parseFloat(T) : et(this.t, N, parseFloat(T), T.replace(S, "")) || 0, C = n !== r[N] ? 2 > St ? -r.ieOffsetX : -r.ieOffsetY : 2 > St ? p - r.ieOffsetX : d - r.ieOffsetY, c[N] = (r[N] = Math.round(n - C * (0 === St || 2 === St ? 1 : k))) + "px"
							}
						}
					},
					Xt = W.set3DTransformRatio = W.setTransformRatio = function(e) {
						var t, n, r, i, s, o, u, a, f, l, c, h, d, v, m, g, y, b, w, E, S, x, T, N = this.data,
							C = this.t.style,
							k = N.rotation,
							L = N.rotationX,
							A = N.rotationY,
							O = N.scaleX,
							M = N.scaleY,
							_ = N.scaleZ,
							D = N.x,
							P = N.y,
							H = N.z,
							j = N.svg,
							F = N.perspective,
							I = N.force3D,
							q = N.skewY,
							R = N.skewX;
						if(q && (R += q, k += q), ((1 === e || 0 === e) && "auto" === I && (this.tween._totalTime === this.tween._totalDuration || !this.tween._totalTime) || !I) && !H && !F && !A && !L && 1 === _ || Ct && j || !Mt) return void(k || R || j ? (k *= B, x = R * B, T = 1e5, n = Math.cos(k) * O, s = Math.sin(k) * O, r = Math.sin(k - x) * -M, o = Math.cos(k - x) * M, x && "simple" === N.skewType && (t = Math.tan(x - q * B), t = Math.sqrt(1 + t * t), r *= t, o *= t, q && (t = Math.tan(q * B), t = Math.sqrt(1 + t * t), n *= t, s *= t)), j && (D += N.xOrigin - (N.xOrigin * n + N.yOrigin * r) + N.xOffset, P += N.yOrigin - (N.xOrigin * s + N.yOrigin * o) + N.yOffset, Ct && (N.xPercent || N.yPercent) && (m = this.t.getBBox(), D += .01 * N.xPercent * m.width, P += .01 * N.yPercent * m.height), m = 1e-6, m > D && D > -m && (D = 0), m > P && P > -m && (P = 0)), w = (n * T | 0) / T + "," + (s * T | 0) / T + "," + (r * T | 0) / T + "," + (o * T | 0) / T + "," + D + "," + P + ")", j && Ct ? this.t.setAttribute("transform", "matrix(" + w) : C[Lt] = (N.xPercent || N.yPercent ? "translate(" + N.xPercent + "%," + N.yPercent + "%) matrix(" : "matrix(") + w) : C[Lt] = (N.xPercent || N.yPercent ? "translate(" + N.xPercent + "%," + N.yPercent + "%) matrix(" : "matrix(") + O + ",0,0," + M + "," + D + "," + P + ")");
						if(p && (m = 1e-4, m > O && O > -m && (O = _ = 2e-5), m > M && M > -m && (M = _ = 2e-5), !F || N.z || N.rotationX || N.rotationY || (F = 0)), k || R) k *= B, g = n = Math.cos(k), y = s = Math.sin(k), R && (k -= R * B, g = Math.cos(k), y = Math.sin(k), "simple" === N.skewType && (t = Math.tan((R - q) * B), t = Math.sqrt(1 + t * t), g *= t, y *= t, N.skewY && (t = Math.tan(q * B), t = Math.sqrt(1 + t * t), n *= t, s *= t))), r = -y, o = g;
						else {
							if(!(A || L || 1 !== _ || F || j)) return void(C[Lt] = (N.xPercent || N.yPercent ? "translate(" + N.xPercent + "%," + N.yPercent + "%) translate3d(" : "translate3d(") + D + "px," + P + "px," + H + "px)" + (1 !== O || 1 !== M ? " scale(" + O + "," + M + ")" : ""));
							n = o = 1, r = s = 0
						}
						l = 1, i = u = a = f = c = h = 0, d = F ? -1 / F : 0, v = N.zOrigin, m = 1e-6, E = ",", S = "0", k = A * B, k && (g = Math.cos(k), y = Math.sin(k), a = -y, c = d * -y, i = n * y, u = s * y, l = g, d *= g, n *= g, s *= g), k = L * B, k && (g = Math.cos(k), y = Math.sin(k), t = r * g + i * y, b = o * g + u * y, f = l * y, h = d * y, i = r * -y + i * g, u = o * -y + u * g, l *= g, d *= g, r = t, o = b), 1 !== _ && (i *= _, u *= _, l *= _, d *= _), 1 !== M && (r *= M, o *= M, f *= M, h *= M), 1 !== O && (n *= O, s *= O, a *= O, c *= O), (v || j) && (v && (D += i * -v, P += u * -v, H += l * -v + v), j && (D += N.xOrigin - (N.xOrigin * n + N.yOrigin * r) + N.xOffset, P += N.yOrigin - (N.xOrigin * s + N.yOrigin * o) + N.yOffset), m > D && D > -m && (D = S), m > P && P > -m && (P = S), m > H && H > -m && (H = 0)), w = N.xPercent || N.yPercent ? "translate(" + N.xPercent + "%," + N.yPercent + "%) matrix3d(" : "matrix3d(", w += (m > n && n > -m ? S : n) + E + (m > s && s > -m ? S : s) + E + (m > a && a > -m ? S : a), w += E + (m > c && c > -m ? S : c) + E + (m > r && r > -m ? S : r) + E + (m > o && o > -m ? S : o), L || A || 1 !== _ ? (w += E + (m > f && f > -m ? S : f) + E + (m > h && h > -m ? S : h) + E + (m > i && i > -m ? S : i), w += E + (m > u && u > -m ? S : u) + E + (m > l && l > -m ? S : l) + E + (m > d && d > -m ? S : d) + E) : w += ",0,0,0,0,1,0,", w += D + E + P + E + H + E + (F ? 1 + -H / F : 1) + ")", C[Lt] = w
					};
				f = _t.prototype, f.x = f.y = f.z = f.skewX = f.skewY = f.rotation = f.rotationX = f.rotationY = f.zOrigin = f.xPercent = f.yPercent = f.xOffset = f.yOffset = 0, f.scaleX = f.scaleY = f.scaleZ = 1, Tt("transform,scale,scaleX,scaleY,scaleZ,x,y,z,rotation,rotationX,rotationY,rotationZ,skewX,skewY,shortRotation,shortRotationX,shortRotationY,shortRotationZ,transformOrigin,svgOrigin,transformPerspective,directionalRotation,parseTransform,force3D,skewType,xPercent,yPercent,smoothOrigin", {
					parser: function(e, t, n, r, s, u, a) {
						if(r._lastParsedTransform === a) return s;
						r._lastParsedTransform = a;
						var f, l = a.scale && "function" == typeof a.scale ? a.scale : 0;
						"function" == typeof a[n] && (f = a[n], a[n] = t), l && (a.scale = l(g, e));
						var c, h, p, d, v, y, b, w, E, S = e._gsTransform,
							x = e.style,
							T = 1e-6,
							N = kt.length,
							C = a,
							k = {},
							L = "transformOrigin",
							A = zt(e, i, !0, C.parseTransform),
							O = C.transform && ("function" == typeof C.transform ? C.transform(g, m) : C.transform);
						if(A.skewType = C.skewType || A.skewType || o.defaultSkewType, r._transform = A, O && "string" == typeof O && Lt) h = U.style, h[Lt] = O, h.display = "block", h.position = "absolute", q.body.appendChild(U), c = zt(U, null, !1), "simple" === A.skewType && (c.scaleY *= Math.cos(c.skewX * B)), A.svg && (y = A.xOrigin, b = A.yOrigin, c.x -= A.xOffset, c.y -= A.yOffset, (C.transformOrigin || C.svgOrigin) && (O = {}, jt(e, ut(C.transformOrigin), O, C.svgOrigin, C.smoothOrigin, !0), y = O.xOrigin, b = O.yOrigin, c.x -= O.xOffset - A.xOffset, c.y -= O.yOffset - A.yOffset), (y || b) && (w = Ut(U, !0), c.x -= y - (y * w[0] + b * w[2]), c.y -= b - (y * w[1] + b * w[3]))), q.body.removeChild(U), c.perspective || (c.perspective = A.perspective), null != C.xPercent && (c.xPercent = ft(C.xPercent, A.xPercent)), null != C.yPercent && (c.yPercent = ft(C.yPercent, A.yPercent));
						else if("object" == typeof C) {
							if(c = {
									scaleX: ft(null != C.scaleX ? C.scaleX : C.scale, A.scaleX),
									scaleY: ft(null != C.scaleY ? C.scaleY : C.scale, A.scaleY),
									scaleZ: ft(C.scaleZ, A.scaleZ),
									x: ft(C.x, A.x),
									y: ft(C.y, A.y),
									z: ft(C.z, A.z),
									xPercent: ft(C.xPercent, A.xPercent),
									yPercent: ft(C.yPercent, A.yPercent),
									perspective: ft(C.transformPerspective, A.perspective)
								}, v = C.directionalRotation, null != v)
								if("object" == typeof v)
									for(h in v) C[h] = v[h];
								else C.rotation = v;
							"string" == typeof C.x && -1 !== C.x.indexOf("%") && (c.x = 0, c.xPercent = ft(C.x, A.xPercent)), "string" == typeof C.y && -1 !== C.y.indexOf("%") && (c.y = 0, c.yPercent = ft(C.y, A.yPercent)), c.rotation = lt("rotation" in C ? C.rotation : "shortRotation" in C ? C.shortRotation + "_short" : "rotationZ" in C ? C.rotationZ : A.rotation, A.rotation, "rotation", k), Mt && (c.rotationX = lt("rotationX" in C ? C.rotationX : "shortRotationX" in C ? C.shortRotationX + "_short" : A.rotationX || 0, A.rotationX, "rotationX", k), c.rotationY = lt("rotationY" in C ? C.rotationY : "shortRotationY" in C ? C.shortRotationY + "_short" : A.rotationY || 0, A.rotationY, "rotationY", k)), c.skewX = lt(C.skewX, A.skewX), c.skewY = lt(C.skewY, A.skewY)
						}
						for(Mt && null != C.force3D && (A.force3D = C.force3D, d = !0), p = A.force3D || A.z || A.rotationX || A.rotationY || c.z || c.rotationX || c.rotationY || c.perspective, p || null == C.scale || (c.scaleZ = 1); --N > -1;) E = kt[N], O = c[E] - A[E], (O > T || -T > O || null != C[E] || null != F[E]) && (d = !0, s = new bt(A, E, A[E], O, s), E in k && (s.e = k[E]), s.xs0 = 0, s.plugin = u, r._overwriteProps.push(s.n));
						return O = C.transformOrigin, A.svg && (O || C.svgOrigin) && (y = A.xOffset, b = A.yOffset, jt(e, ut(O), c, C.svgOrigin, C.smoothOrigin), s = wt(A, "xOrigin", (S ? A : c).xOrigin, c.xOrigin, s, L), s = wt(A, "yOrigin", (S ? A : c).yOrigin, c.yOrigin, s, L), (y !== A.xOffset || b !== A.yOffset) && (s = wt(A, "xOffset", S ? y : A.xOffset, A.xOffset, s, L), s = wt(A, "yOffset", S ? b : A.yOffset, A.yOffset, s, L)), O = "0px 0px"), (O || Mt && p && A.zOrigin) && (Lt ? (d = !0, E = Ot, O = (O || Z(e, E, i, !1, "50% 50%")) + "", s = new bt(x, E, 0, 0, s, -1, L), s.b = x[E], s.plugin = u, Mt ? (h = A.zOrigin, O = O.split(" "), A.zOrigin = (O.length > 2 && (0 === h || "0px" !== O[2]) ? parseFloat(O[2]) : h) || 0, s.xs0 = s.e = O[0] + " " + (O[1] || "50%") + " 0px", s = new bt(A, "zOrigin", 0, 0, s, -1, s.n), s.b = h, s.xs0 = s.e = A.zOrigin) : s.xs0 = s.e = O) : ut(O + "", A)), d && (r._transformType = A.svg && Ct || !p && 3 !== this._transformType ? 2 : 3), f && (a[n] = f), l && (a.scale = l), s
					},
					prefix: !0
				}), Tt("boxShadow", {
					defaultValue: "0px 0px 0px 0px #999",
					prefix: !0,
					color: !0,
					multi: !0,
					keyword: "inset"
				}), Tt("borderRadius", {
					defaultValue: "0px",
					parser: function(e, t, n, s, o, u) {
						t = this.format(t);
						var a, f, l, c, h, p, d, v, m, g, y, b, w, E, S, x, T = ["borderTopLeftRadius", "borderTopRightRadius", "borderBottomRightRadius", "borderBottomLeftRadius"],
							N = e.style;
						for(m = parseFloat(e.offsetWidth), g = parseFloat(e.offsetHeight), a = t.split(" "), f = 0; f < T.length; f++) this.p.indexOf("border") && (T[f] = G(T[f])), h = c = Z(e, T[f], i, !1, "0px"), -1 !== h.indexOf(" ") && (c = h.split(" "), h = c[0], c = c[1]), p = l = a[f], d = parseFloat(h), b = h.substr((d + "").length), w = "=" === p.charAt(1), w ? (v = parseInt(p.charAt(0) + "1", 10), p = p.substr(2), v *= parseFloat(p), y = p.substr((v + "").length - (0 > v ? 1 : 0)) || "") : (v = parseFloat(p), y = p.substr((v + "").length)), "" === y && (y = r[n] || b), y !== b && (E = et(e, "borderLeft", d, b), S = et(e, "borderTop", d, b), "%" === y ? (h = E / m * 100 + "%", c = S / g * 100 + "%") : "em" === y ? (x = et(e, "borderLeft", 1, "em"), h = E / x + "em", c = S / x + "em") : (h = E + "px", c = S + "px"), w && (p = parseFloat(h) + v + y, l = parseFloat(c) + v + y)), o = Et(N, T[f], h + " " + c, p + " " + l, !1, "0px", o);
						return o
					},
					prefix: !0,
					formatter: mt("0px 0px 0px 0px", !1, !0)
				}), Tt("borderBottomLeftRadius,borderBottomRightRadius,borderTopLeftRadius,borderTopRightRadius", {
					defaultValue: "0px",
					parser: function(e, t, n, r, s, o) {
						return Et(e.style, n, this.format(Z(e, n, i, !1, "0px 0px")), this.format(t), !1, "0px", s)
					},
					prefix: !0,
					formatter: mt("0px 0px", !1, !0)
				}), Tt("backgroundPosition", {
					defaultValue: "0 0",
					parser: function(e, t, n, r, s, o) {
						var u, a, f, l, c, h, p = "background-position",
							d = i || Y(e, null),
							m = this.format((d ? v ? d.getPropertyValue(p + "-x") + " " + d.getPropertyValue(p + "-y") : d.getPropertyValue(p) : e.currentStyle.backgroundPositionX + " " + e.currentStyle.backgroundPositionY) || "0 0"),
							g = this.format(t);
						if(-1 !== m.indexOf("%") != (-1 !== g.indexOf("%")) && g.split(",").length < 2 && (h = Z(e, "backgroundImage").replace(A, ""), h && "none" !== h)) {
							for(u = m.split(" "), a = g.split(" "), z.setAttribute("src", h), f = 2; --f > -1;) m = u[f], l = -1 !== m.indexOf("%"), l !== (-1 !== a[f].indexOf("%")) && (c = 0 === f ? e.offsetWidth - z.width : e.offsetHeight - z.height, u[f] = l ? parseFloat(m) / 100 * c + "px" : parseFloat(m) / c * 100 + "%");
							m = u.join(" ")
						}
						return this.parseComplex(e.style, m, g, s, o)
					},
					formatter: ut
				}), Tt("backgroundSize", {
					defaultValue: "0 0",
					formatter: function(e) {
						return e += "", ut(-1 === e.indexOf(" ") ? e + " " + e : e)
					}
				}), Tt("perspective", {
					defaultValue: "0px",
					prefix: !0
				}), Tt("perspectiveOrigin", {
					defaultValue: "50% 50%",
					prefix: !0
				}), Tt("transformStyle", {
					prefix: !0
				}), Tt("backfaceVisibility", {
					prefix: !0
				}), Tt("userSelect", {
					prefix: !0
				}), Tt("margin", {
					parser: gt("marginTop,marginRight,marginBottom,marginLeft")
				}), Tt("padding", {
					parser: gt("paddingTop,paddingRight,paddingBottom,paddingLeft")
				}), Tt("clip", {
					defaultValue: "rect(0px,0px,0px,0px)",
					parser: function(e, t, n, r, s, o) {
						var u, a, f;
						return 9 > v ? (a = e.currentStyle, f = 8 > v ? " " : ",", u = "rect(" + a.clipTop + f + a.clipRight + f + a.clipBottom + f + a.clipLeft + ")", t = this.format(t).split(",").join(f)) : (u = this.format(Z(e, this.p, i, !1, this.dflt)), t = this.format(t)), this.parseComplex(e.style, u, t, s, o)
					}
				}), Tt("textShadow", {
					defaultValue: "0px 0px 0px #999",
					color: !0,
					multi: !0
				}), Tt("autoRound,strictUnits", {
					parser: function(e, t, n, r, i) {
						return i
					}
				}), Tt("border", {
					defaultValue: "0px solid #000",
					parser: function(e, t, n, r, s, o) {
						var u = Z(e, "borderTopWidth", i, !1, "0px"),
							a = this.format(t).split(" "),
							f = a[0].replace(S, "");
						return "px" !== f && (u = parseFloat(u) / et(e, "borderTopWidth", 1, f) + f), this.parseComplex(e.style, this.format(u + " " + Z(e, "borderTopStyle", i, !1, "solid") + " " + Z(e, "borderTopColor", i, !1, "#000")), a.join(" "), s, o)
					},
					color: !0,
					formatter: function(e) {
						var t = e.split(" ");
						return t[0] + " " + (t[1] || "solid") + " " + (e.match(vt) || ["#000"])[0]
					}
				}), Tt("borderWidth", {
					parser: gt("borderTopWidth,borderRightWidth,borderBottomWidth,borderLeftWidth")
				}), Tt("float,cssFloat,styleFloat", {
					parser: function(e, t, n, r, i, s) {
						var o = e.style,
							u = "cssFloat" in o ? "cssFloat" : "styleFloat";
						return new bt(o, u, 0, 0, i, -1, n, !1, 0, o[u], t)
					}
				});
				var Vt = function(e) {
					var t, n = this.t,
						r = n.filter || Z(this.data, "filter") || "",
						i = this.s + this.c * e | 0;
					100 === i && (-1 === r.indexOf("atrix(") && -1 === r.indexOf("radient(") && -1 === r.indexOf("oader(") ? (n.removeAttribute("filter"), t = !Z(this.data, "filter")) : (n.filter = r.replace(N, ""), t = !0)), t || (this.xn1 && (n.filter = r = r || "alpha(opacity=" + i + ")"), -1 === r.indexOf("pacity") ? 0 === i && this.xn1 || (n.filter = r + " alpha(opacity=" + i + ")") : n.filter = r.replace(x, "opacity=" + i))
				};
				Tt("opacity,alpha,autoAlpha", {
					defaultValue: "1",
					parser: function(e, t, n, r, s, o) {
						var u = parseFloat(Z(e, "opacity", i, !1, "1")),
							a = e.style,
							f = "autoAlpha" === n;
						return "string" == typeof t && "=" === t.charAt(1) && (t = ("-" === t.charAt(0) ? -1 : 1) * parseFloat(t.substr(2)) + u), f && 1 === u && "hidden" === Z(e, "visibility", i) && 0 !== t && (u = 0), V ? s = new bt(a, "opacity", u, t - u, s) : (s = new bt(a, "opacity", 100 * u, 100 * (t - u), s), s.xn1 = f ? 1 : 0, a.zoom = 1, s.type = 2, s.b = "alpha(opacity=" + s.s + ")", s.e = "alpha(opacity=" + (s.s + s.c) + ")", s.data = e, s.plugin = o, s.setRatio = Vt), f && (s = new bt(a, "visibility", 0, 0, s, -1, null, !1, 0, 0 !== u ? "inherit" : "hidden", 0 === t ? "hidden" : "inherit"), s.xs0 = "inherit", r._overwriteProps.push(s.n), r._overwriteProps.push(n)), s
					}
				});
				var $t = function(e, t) {
						t && (e.removeProperty ? (("ms" === t.substr(0, 2) || "webkit" === t.substr(0, 6)) && (t = "-" + t), e.removeProperty(t.replace(k, "-$1").toLowerCase())) : e.removeAttribute(t))
					},
					Jt = function(e) {
						if(this.t._gsClassPT = this, 1 === e || 0 === e) {
							this.t.setAttribute("class", 0 === e ? this.b : this.e);
							for(var t = this.data, n = this.t.style; t;) t.v ? n[t.p] = t.v : $t(n, t.p), t = t._next;
							1 === e && this.t._gsClassPT === this && (this.t._gsClassPT = null)
						} else this.t.getAttribute("class") !== this.e && this.t.setAttribute("class", this.e)
					};
				Tt("className", {
					parser: function(e, t, r, s, o, u, a) {
						var f, l, c, h, p, d = e.getAttribute("class") || "",
							v = e.style.cssText;
						if(o = s._classNamePT = new bt(e, r, 0, 0, o, 2), o.setRatio = Jt, o.pr = -11, n = !0, o.b = d, l = nt(e, i), c = e._gsClassPT) {
							for(h = {}, p = c.data; p;) h[p.p] = 1, p = p._next;
							c.setRatio(1)
						}
						return e._gsClassPT = o, o.e = "=" !== t.charAt(1) ? t : d.replace(new RegExp("(?:\\s|^)" + t.substr(2) + "(?![\\w-])"), "") + ("+" === t.charAt(0) ? " " + t.substr(2) : ""), e.setAttribute("class", o.e), f = rt(e, l, nt(e), a, h), e.setAttribute("class", d), o.data = f.firstMPT, e.style.cssText = v, o = o.xfirst = s.parse(e, f.difs, o, u)
					}
				});
				var Kt = function(e) {
					if((1 === e || 0 === e) && this.data._totalTime === this.data._totalDuration && "isFromStart" !== this.data.data) {
						var t, n, r, i, s, o = this.t.style,
							u = a.transform.parse;
						if("all" === this.e) o.cssText = "", i = !0;
						else
							for(t = this.e.split(" ").join("").split(","), r = t.length; --r > -1;) n = t[r], a[n] && (a[n].parse === u ? i = !0 : n = "transformOrigin" === n ? Ot : a[n].p), $t(o, n);
						i && ($t(o, Lt), s = this.t._gsTransform, s && (s.svg && (this.t.removeAttribute("data-svg-origin"), this.t.removeAttribute("transform")), delete this.t._gsTransform))
					}
				};
				for(Tt("clearProps", {
						parser: function(e, t, r, i, s) {
							return s = new bt(e, r, 0, 0, s, 2), s.setRatio = Kt, s.e = t, s.pr = -10, s.data = i._tween, n = !0, s
						}
					}), f = "bezier,throwProps,physicsProps,physics2D".split(","), St = f.length; St--;) Nt(f[St]);
				f = o.prototype, f._firstPT = f._lastParsedTransform = f._transform = null, f._onInitTween = function(e, t, u, f) {
					if(!e.nodeType) return !1;
					this._target = m = e, this._tween = u, this._vars = t, g = f, l = t.autoRound, n = !1, r = t.suffixMap || o.suffixMap, i = Y(e, ""), s = this._overwriteProps;
					var p, v, y, b, w, E, S, x, N, C = e.style;
					if(c && "" === C.zIndex && (p = Z(e, "zIndex", i), ("auto" === p || "" === p) && this._addLazySet(C, "zIndex", 0)), "string" == typeof t && (b = C.cssText, p = nt(e, i), C.cssText = b + ";" + t, p = rt(e, p, nt(e)).difs, !V && T.test(t) && (p.opacity = parseFloat(RegExp.$1)), t = p, C.cssText = b), t.className ? this._firstPT = v = a.className.parse(e, t.className, "className", this, null, null, t) : this._firstPT = v = this.parse(e, t, null), this._transformType) {
						for(N = 3 === this._transformType, Lt ? h && (c = !0, "" === C.zIndex && (S = Z(e, "zIndex", i), ("auto" === S || "" === S) && this._addLazySet(C, "zIndex", 0)), d && this._addLazySet(C, "WebkitBackfaceVisibility", this._vars.WebkitBackfaceVisibility || (N ? "visible" : "hidden"))) : C.zoom = 1, y = v; y && y._next;) y = y._next;
						x = new bt(e, "transform", 0, 0, null, 2), this._linkCSSP(x, null, y), x.setRatio = Lt ? Xt : Wt, x.data = this._transform || zt(e, i, !0), x.tween = u, x.pr = -1, s.pop()
					}
					if(n) {
						for(; v;) {
							for(E = v._next, y = b; y && y.pr > v.pr;) y = y._next;
							(v._prev = y ? y._prev : w) ? v._prev._next = v: b = v, (v._next = y) ? y._prev = v : w = v, v = E
						}
						this._firstPT = b
					}
					return !0
				}, f.parse = function(e, t, n, s) {
					var o, u, f, c, h, p, d, v, y, b, w = e.style;
					for(o in t) {
						if(p = t[o], "function" == typeof p && (p = p(g, m)), u = a[o]) n = u.parse(e, p, o, this, n, s, t);
						else {
							if("--" === o.substr(0, 2)) {
								this._tween._propLookup[o] = this._addTween.call(this._tween, e.style, "setProperty", Y(e).getPropertyValue(o) + "", p + "", o, !1, o);
								continue
							}
							h = Z(e, o, i) + "", y = "string" == typeof p, "color" === o || "fill" === o || "stroke" === o || -1 !== o.indexOf("Color") || y && C.test(p) ? (y || (p = pt(p), p = (p.length > 3 ? "rgba(" : "rgb(") + p.join(",") + ")"), n = Et(w, o, h, p, !0, "transparent", n, 0, s)) : y && H.test(p) ? n = Et(w, o, h, p, !0, null, n, 0, s) : (f = parseFloat(h), d = f || 0 === f ? h.substr((f + "").length) : "", ("" === h || "auto" === h) && ("width" === o || "height" === o ? (f = ot(e, o, i), d = "px") : "left" === o || "top" === o ? (f = tt(e, o, i), d = "px") : (f = "opacity" !== o ? 0 : 1, d = "")), b = y && "=" === p.charAt(1), b ? (c = parseInt(p.charAt(0) + "1", 10), p = p.substr(2), c *= parseFloat(p), v = p.replace(S, "")) : (c = parseFloat(p), v = y ? p.replace(S, "") : ""), "" === v && (v = o in r ? r[o] : d), p = c || 0 === c ? (b ? c + f : c) + v : t[o], d !== v && ("" !== v || "lineHeight" === o) && (c || 0 === c) && f && (f = et(e, o, f, d), "%" === v ? (f /= et(e, o, 100, "%") / 100, t.strictUnits !== !0 && (h = f + "%")) : "em" === v || "rem" === v || "vw" === v || "vh" === v ? f /= et(e, o, 1, v) : "px" !== v && (c = et(e, o, c, v), v = "px"), b && (c || 0 === c) && (p = c + f + v)), b && (c += f), !f && 0 !== f || !c && 0 !== c ? void 0 !== w[o] && (p || p + "" != "NaN" && null != p) ? (n = new bt(w, o, c || f || 0, 0, n, -1, o, !1, 0, h, p), n.xs0 = "none" !== p || "display" !== o && -1 === o.indexOf("Style") ? p : h) : J("invalid " + o + " tween value: " + t[o]) : (n = new bt(w, o, f, c - f, n, 0, o, l !== !1 && ("px" === v || "zIndex" === o), 0, h, p), n.xs0 = v))
						}
						s && n && !n.plugin && (n.plugin = s)
					}
					return n
				}, f.setRatio = function(e) {
					var t, n, r, i = this._firstPT,
						s = 1e-6;
					if(1 !== e || this._tween._time !== this._tween._duration && 0 !== this._tween._time)
						if(e || this._tween._time !== this._tween._duration && 0 !== this._tween._time || this._tween._rawPrevTime === -0.000001)
							for(; i;) {
								if(t = i.c * e + i.s, i.r ? t = Math.round(t) : s > t && t > -s && (t = 0), i.type)
									if(1 === i.type)
										if(r = i.l, 2 === r) i.t[i.p] = i.xs0 + t + i.xs1 + i.xn1 + i.xs2;
										else if(3 === r) i.t[i.p] = i.xs0 + t + i.xs1 + i.xn1 + i.xs2 + i.xn2 + i.xs3;
								else if(4 === r) i.t[i.p] = i.xs0 + t + i.xs1 + i.xn1 + i.xs2 + i.xn2 + i.xs3 + i.xn3 + i.xs4;
								else if(5 === r) i.t[i.p] = i.xs0 + t + i.xs1 + i.xn1 + i.xs2 + i.xn2 + i.xs3 + i.xn3 + i.xs4 + i.xn4 + i.xs5;
								else {
									for(n = i.xs0 + t + i.xs1, r = 1; r < i.l; r++) n += i["xn" + r] + i["xs" + (r + 1)];
									i.t[i.p] = n
								} else -1 === i.type ? i.t[i.p] = i.xs0 : i.setRatio && i.setRatio(e);
								else i.t[i.p] = t + i.xs0;
								i = i._next
							} else
								for(; i;) 2 !== i.type ? i.t[i.p] = i.b : i.setRatio(e), i = i._next;
						else
							for(; i;) {
								if(2 !== i.type)
									if(i.r && -1 !== i.type)
										if(t = Math.round(i.s + i.c), i.type) {
											if(1 === i.type) {
												for(r = i.l, n = i.xs0 + t + i.xs1, r = 1; r < i.l; r++) n += i["xn" + r] + i["xs" + (r + 1)];
												i.t[i.p] = n
											}
										} else i.t[i.p] = t + i.xs0;
								else i.t[i.p] = i.e;
								else i.setRatio(e);
								i = i._next
							}
				}, f._enableTransforms = function(e) {
					this._transform = this._transform || zt(this._target, i, !0), this._transformType = this._transform.svg && Ct || !e && 3 !== this._transformType ? 2 : 3
				};
				var Qt = function(e) {
					this.t[this.p] = this.e, this.data._linkCSSP(this, this._next, null, !0)
				};
				f._addLazySet = function(e, t, n) {
					var r = this._firstPT = new bt(e, t, 0, 0, this._firstPT, 2);
					r.e = n, r.setRatio = Qt, r.data = this
				}, f._linkCSSP = function(e, t, n, r) {
					return e && (t && (t._prev = e), e._next && (e._next._prev = e._prev), e._prev ? e._prev._next = e._next : this._firstPT === e && (this._firstPT = e._next, r = !0), n ? n._next = e : r || null !== this._firstPT || (this._firstPT = e), e._next = t, e._prev = n), e
				}, f._mod = function(e) {
					for(var t = this._firstPT; t;) "function" == typeof e[t.p] && e[t.p] === Math.round && (t.r = 1), t = t._next
				}, f._kill = function(t) {
					var n, r, i, s = t;
					if(t.autoAlpha || t.alpha) {
						s = {};
						for(r in t) s[r] = t[r];
						s.opacity = 1, s.autoAlpha && (s.visibility = 1)
					}
					for(t.className && (n = this._classNamePT) && (i = n.xfirst, i && i._prev ? this._linkCSSP(i._prev, n._next, i._prev._prev) : i === this._firstPT && (this._firstPT = n._next), n._next && this._linkCSSP(n._next, n._next._next, i._prev), this._classNamePT = null), n = this._firstPT; n;) n.plugin && n.plugin !== r && n.plugin._kill && (n.plugin._kill(t), r = n.plugin), n = n._next;
					return e.prototype._kill.call(this, s)
				};
				var Gt = function(e, t, n) {
					var r, i, s, o;
					if(e.slice)
						for(i = e.length; --i > -1;) Gt(e[i], t, n);
					else
						for(r = e.childNodes, i = r.length; --i > -1;) s = r[i], o = s.type, s.style && (t.push(nt(s)), n && n.push(s)), 1 !== o && 9 !== o && 11 !== o || !s.childNodes.length || Gt(s, t, n)
				};
				return o.cascadeTo = function(e, n, r) {
					var i, s, o, u, a = t.to(e, n, r),
						f = [a],
						l = [],
						c = [],
						h = [],
						p = t._internals.reservedProps;
					for(e = a._targets || a.target, Gt(e, l, h), a.render(n, !0, !0), Gt(e, c), a.render(0, !0, !0), a._enabled(!0), i = h.length; --i > -1;)
						if(s = rt(h[i], l[i], c[i]), s.firstMPT) {
							s = s.difs;
							for(o in r) p[o] && (s[o] = r[o]);
							u = {};
							for(o in s) u[o] = l[i][o];
							f.push(t.fromTo(h[i], n, u, s))
						}
					return f
				}, e.activate([o]), o
			}, !0),
			function() {
				var e = _gsScope._gsDefine.plugin({
						propName: "roundProps",
						version: "1.6.0",
						priority: -1,
						API: 2,
						init: function(e, t, n) {
							return this._tween = n, !0
						}
					}),
					t = function(e) {
						for(; e;) e.f || e.blob || (e.m = Math.round), e = e._next
					},
					n = e.prototype;
				n._onInitAllProps = function() {
					for(var e, n, r, i = this._tween, s = i.vars.roundProps.join ? i.vars.roundProps : i.vars.roundProps.split(","), o = s.length, u = {}, a = i._propLookup.roundProps; --o > -1;) u[s[o]] = Math.round;
					for(o = s.length; --o > -1;)
						for(e = s[o], n = i._firstPT; n;) r = n._next, n.pg ? n.t._mod(u) : n.n === e && (2 === n.f && n.t ? t(n.t._firstPT) : (this._add(n.t, e, n.s, n.c), r && (r._prev = n._prev), n._prev ? n._prev._next = r : i._firstPT === n && (i._firstPT = r), n._next = n._prev = null, i._propLookup[e] = a)), n = r;
					return !1
				}, n._add = function(e, t, n, r) {
					this._addTween(e, t, n, n + r, t, Math.round), this._overwriteProps.push(t)
				}
			}(),
			function() {
				_gsScope._gsDefine.plugin({
					propName: "attr",
					API: 2,
					version: "0.6.1",
					init: function(e, t, n, r) {
						var i, s;
						if("function" != typeof e.setAttribute) return !1;
						for(i in t) s = t[i], "function" == typeof s && (s = s(r, e)), this._addTween(e, "setAttribute", e.getAttribute(i) + "", s + "", i, !1, i), this._overwriteProps.push(i);
						return !0
					}
				})
			}(), _gsScope._gsDefine.plugin({
				propName: "directionalRotation",
				version: "0.3.1",
				API: 2,
				init: function(e, t, n, r) {
					"object" != typeof t && (t = {
						rotation: t
					}), this.finals = {};
					var i, s, o, u, a, f, l = t.useRadians === !0 ? 2 * Math.PI : 360,
						c = 1e-6;
					for(i in t) "useRadians" !== i && (u = t[i], "function" == typeof u && (u = u(r, e)), f = (u + "").split("_"), s = f[0], o = parseFloat("function" != typeof e[i] ? e[i] : e[i.indexOf("set") || "function" != typeof e["get" + i.substr(3)] ? i : "get" + i.substr(3)]()), u = this.finals[i] = "string" == typeof s && "=" === s.charAt(1) ? o + parseInt(s.charAt(0) + "1", 10) * Number(s.substr(2)) : Number(s) || 0, a = u - o, f.length && (s = f.join("_"), -1 !== s.indexOf("short") && (a %= l, a !== a % (l / 2) && (a = 0 > a ? a + l : a - l)), -1 !== s.indexOf("_cw") && 0 > a ? a = (a + 9999999999 * l) % l - (a / l | 0) * l : -1 !== s.indexOf("ccw") && a > 0 && (a = (a - 9999999999 * l) % l - (a / l | 0) * l)), (a > c || -c > a) && (this._addTween(e, i, o, o + a, i), this._overwriteProps.push(i)));
					return !0
				},
				set: function(e) {
					var t;
					if(1 !== e) this._super.setRatio.call(this, e);
					else
						for(t = this._firstPT; t;) t.f ? t.t[t.p](this.finals[t.p]) : t.t[t.p] = this.finals[t.p], t = t._next
				}
			})._autoCSS = !0, _gsScope._gsDefine("easing.Back", ["easing.Ease"], function(e) {
				var t, n, r, i = _gsScope.GreenSockGlobals || _gsScope,
					s = i.com.greensock,
					o = 2 * Math.PI,
					u = Math.PI / 2,
					a = s._class,
					f = function(t, n) {
						var r = a("easing." + t, function() {}, !0),
							i = r.prototype = new e;
						return i.constructor = r, i.getRatio = n, r
					},
					l = e.register || function() {},
					c = function(e, t, n, r, i) {
						var s = a("easing." + e, {
							easeOut: new t,
							easeIn: new n,
							easeInOut: new r
						}, !0);
						return l(s, e), s
					},
					h = function(e, t, n) {
						this.t = e, this.v = t, n && (this.next = n, n.prev = this, this.c = n.v - t, this.gap = n.t - e)
					},
					p = function(t, n) {
						var r = a("easing." + t, function(e) {
								this._p1 = e || 0 === e ? e : 1.70158, this._p2 = 1.525 * this._p1
							}, !0),
							i = r.prototype = new e;
						return i.constructor = r, i.getRatio = n, i.config = function(e) {
							return new r(e)
						}, r
					},
					d = c("Back", p("BackOut", function(e) {
						return(e -= 1) * e * ((this._p1 + 1) * e + this._p1) + 1
					}), p("BackIn", function(e) {
						return e * e * ((this._p1 + 1) * e - this._p1)
					}), p("BackInOut", function(e) {
						return(e *= 2) < 1 ? .5 * e * e * ((this._p2 + 1) * e - this._p2) : .5 * ((e -= 2) * e * ((this._p2 + 1) * e + this._p2) + 2)
					})),
					v = a("easing.SlowMo", function(e, t, n) {
						t = t || 0 === t ? t : .7, null == e ? e = .7 : e > 1 && (e = 1), this._p = 1 !== e ? t : 0, this._p1 = (1 - e) / 2, this._p2 = e, this._p3 = this._p1 + this._p2, this._calcEnd = n === !0
					}, !0),
					m = v.prototype = new e;
				return m.constructor = v, m.getRatio = function(e) {
					var t = e + (.5 - e) * this._p;
					return e < this._p1 ? this._calcEnd ? 1 - (e = 1 - e / this._p1) * e : t - (e = 1 - e / this._p1) * e * e * e * t : e > this._p3 ? this._calcEnd ? 1 - (e = (e - this._p3) / this._p1) * e : t + (e - t) * (e = (e - this._p3) / this._p1) * e * e * e : this._calcEnd ? 1 : t
				}, v.ease = new v(.7, .7), m.config = v.config = function(e, t, n) {
					return new v(e, t, n)
				}, t = a("easing.SteppedEase", function(e, t) {
					e = e || 1, this._p1 = 1 / e, this._p2 = e + (t ? 0 : 1), this._p3 = t ? 1 : 0
				}, !0), m = t.prototype = new e, m.constructor = t, m.getRatio = function(e) {
					return 0 > e ? e = 0 : e >= 1 && (e = .999999999), ((this._p2 * e | 0) + this._p3) * this._p1
				}, m.config = t.config = function(e, n) {
					return new t(e, n)
				}, n = a("easing.RoughEase", function(t) {
					t = t || {};
					for(var n, r, i, s, o, u, a = t.taper || "none", f = [], l = 0, c = 0 | (t.points || 20), p = c, d = t.randomize !== !1, v = t.clamp === !0, m = t.template instanceof e ? t.template : null, g = "number" == typeof t.strength ? .4 * t.strength : .4; --p > -1;) n = d ? Math.random() : 1 / c * p, r = m ? m.getRatio(n) : n, "none" === a ? i = g : "out" === a ? (s = 1 - n, i = s * s * g) : "in" === a ? i = n * n * g : .5 > n ? (s = 2 * n, i = s * s * .5 * g) : (s = 2 * (1 - n), i = s * s * .5 * g), d ? r += Math.random() * i - .5 * i : p % 2 ? r += .5 * i : r -= .5 * i, v && (r > 1 ? r = 1 : 0 > r && (r = 0)), f[l++] = {
						x: n,
						y: r
					};
					for(f.sort(function(e, t) {
							return e.x - t.x
						}), u = new h(1, 1, null), p = c; --p > -1;) o = f[p], u = new h(o.x, o.y, u);
					this._prev = new h(0, 0, 0 !== u.t ? u : u.next)
				}, !0), m = n.prototype = new e, m.constructor = n, m.getRatio = function(e) {
					var t = this._prev;
					if(e > t.t) {
						for(; t.next && e >= t.t;) t = t.next;
						t = t.prev
					} else
						for(; t.prev && e <= t.t;) t = t.prev;
					return this._prev = t, t.v + (e - t.t) / t.gap * t.c
				}, m.config = function(e) {
					return new n(e)
				}, n.ease = new n, c("Bounce", f("BounceOut", function(e) {
					return 1 / 2.75 > e ? 7.5625 * e * e : 2 / 2.75 > e ? 7.5625 * (e -= 1.5 / 2.75) * e + .75 : 2.5 / 2.75 > e ? 7.5625 * (e -= 2.25 / 2.75) * e + .9375 : 7.5625 * (e -= 2.625 / 2.75) * e + .984375
				}), f("BounceIn", function(e) {
					return(e = 1 - e) < 1 / 2.75 ? 1 - 7.5625 * e * e : 2 / 2.75 > e ? 1 - (7.5625 * (e -= 1.5 / 2.75) * e + .75) : 2.5 / 2.75 > e ? 1 - (7.5625 * (e -= 2.25 / 2.75) * e + .9375) : 1 - (7.5625 * (e -= 2.625 / 2.75) * e + .984375)
				}), f("BounceInOut", function(e) {
					var t = .5 > e;
					return e = t ? 1 - 2 * e : 2 * e - 1, e = 1 / 2.75 > e ? 7.5625 * e * e : 2 / 2.75 > e ? 7.5625 * (e -= 1.5 / 2.75) * e + .75 : 2.5 / 2.75 > e ? 7.5625 * (e -= 2.25 / 2.75) * e + .9375 : 7.5625 * (e -= 2.625 / 2.75) * e + .984375, t ? .5 * (1 - e) : .5 * e + .5
				})), c("Circ", f("CircOut", function(e) {
					return Math.sqrt(1 - (e -= 1) * e)
				}), f("CircIn", function(e) {
					return -(Math.sqrt(1 - e * e) - 1)
				}), f("CircInOut", function(e) {
					return(e *= 2) < 1 ? -0.5 * (Math.sqrt(1 - e * e) - 1) : .5 * (Math.sqrt(1 - (e -= 2) * e) + 1)
				})), r = function(t, n, r) {
					var i = a("easing." + t, function(e, t) {
							this._p1 = e >= 1 ? e : 1, this._p2 = (t || r) / (1 > e ? e : 1), this._p3 = this._p2 / o * (Math.asin(1 / this._p1) || 0), this._p2 = o / this._p2
						}, !0),
						s = i.prototype = new e;
					return s.constructor = i, s.getRatio = n, s.config = function(e, t) {
						return new i(e, t)
					}, i
				}, c("Elastic", r("ElasticOut", function(e) {
					return this._p1 * Math.pow(2, -10 * e) * Math.sin((e - this._p3) * this._p2) + 1
				}, .3), r("ElasticIn", function(e) {
					return -(this._p1 * Math.pow(2, 10 * (e -= 1)) * Math.sin((e - this._p3) * this._p2))
				}, .3), r("ElasticInOut", function(e) {
					return(e *= 2) < 1 ? -0.5 * this._p1 * Math.pow(2, 10 * (e -= 1)) * Math.sin((e - this._p3) * this._p2) : this._p1 * Math.pow(2, -10 * (e -= 1)) * Math.sin((e - this._p3) * this._p2) * .5 + 1
				}, .45)), c("Expo", f("ExpoOut", function(e) {
					return 1 - Math.pow(2, -10 * e)
				}), f("ExpoIn", function(e) {
					return Math.pow(2, 10 * (e - 1)) - .001
				}), f("ExpoInOut", function(e) {
					return(e *= 2) < 1 ? .5 * Math.pow(2, 10 * (e - 1)) : .5 * (2 - Math.pow(2, -10 * (e - 1)))
				})), c("Sine", f("SineOut", function(e) {
					return Math.sin(e * u)
				}), f("SineIn", function(e) {
					return -Math.cos(e * u) + 1
				}), f("SineInOut", function(e) {
					return -0.5 * (Math.cos(Math.PI * e) - 1)
				})), a("easing.EaseLookup", {
					find: function(t) {
						return e.map[t]
					}
				}, !0), l(i.SlowMo, "SlowMo", "ease,"), l(n, "RoughEase", "ease,"), l(t, "SteppedEase", "ease,"), d
			}, !0)
	}), _gsScope._gsDefine && _gsScope._gsQueue.pop()(),
	function(e, t) {
		"use strict";
		var n = {},
			r = e.document,
			i = e.GreenSockGlobals = e.GreenSockGlobals || e;
		if(!i.TweenLite) {
			var s, o, u, a, f, l = function(e) {
					var t, n = e.split("."),
						r = i;
					for(t = 0; t < n.length; t++) r[n[t]] = r = r[n[t]] || {};
					return r
				},
				c = l("com.greensock"),
				h = 1e-10,
				p = function(e) {
					var t, n = [],
						r = e.length;
					for(t = 0; t !== r; n.push(e[t++]));
					return n
				},
				d = function() {},
				v = function() {
					var e = Object.prototype.toString,
						t = e.call([]);
					return function(n) {
						return null != n && (n instanceof Array || "object" == typeof n && !!n.push && e.call(n) === t)
					}
				}(),
				m = {},
				g = function(r, s, o, u) {
					this.sc = m[r] ? m[r].sc : [], m[r] = this, this.gsClass = null, this.func = o;
					var a = [];
					this.check = function(f) {
						for(var c, h, p, d, v = s.length, y = v; --v > -1;)(c = m[s[v]] || new g(s[v], [])).gsClass ? (a[v] = c.gsClass, y--) : f && c.sc.push(this);
						if(0 === y && o) {
							if(h = ("com.greensock." + r).split("."), p = h.pop(), d = l(h.join("."))[p] = this.gsClass = o.apply(o, a), u)
								if(i[p] = n[p] = d, "undefined" != typeof module && module.exports)
									if(r === t) {
										module.exports = n[t] = d;
										for(v in n) d[v] = n[v]
									} else n[t] && (n[t][p] = d);
							else "function" == typeof define && define.amd && define((e.GreenSockAMDPath ? e.GreenSockAMDPath + "/" : "") + r.split(".").pop(), [], function() {
								return d
							});
							for(v = 0; v < this.sc.length; v++) this.sc[v].check()
						}
					}, this.check(!0)
				},
				y = e._gsDefine = function(e, t, n, r) {
					return new g(e, t, n, r)
				},
				b = c._class = function(e, t, n) {
					return t = t || function() {}, y(e, [], function() {
						return t
					}, n), t
				};
			y.globals = i;
			var w = [0, 0, 1, 1],
				E = b("easing.Ease", function(e, t, n, r) {
					this._func = e, this._type = n || 0, this._power = r || 0, this._params = t ? w.concat(t) : w
				}, !0),
				S = E.map = {},
				x = E.register = function(e, t, n, r) {
					for(var i, s, o, u, a = t.split(","), f = a.length, l = (n || "easeIn,easeOut,easeInOut").split(","); --f > -1;)
						for(s = a[f], i = r ? b("easing." + s, null, !0) : c.easing[s] || {}, o = l.length; --o > -1;) u = l[o], S[s + "." + u] = S[u + s] = i[u] = e.getRatio ? e : e[u] || new e
				};
			for(u = E.prototype, u._calcEnd = !1, u.getRatio = function(e) {
					if(this._func) return this._params[0] = e, this._func.apply(null, this._params);
					var t = this._type,
						n = this._power,
						r = 1 === t ? 1 - e : 2 === t ? e : .5 > e ? 2 * e : 2 * (1 - e);
					return 1 === n ? r *= r : 2 === n ? r *= r * r : 3 === n ? r *= r * r * r : 4 === n && (r *= r * r * r * r), 1 === t ? 1 - r : 2 === t ? r : .5 > e ? r / 2 : 1 - r / 2
				}, s = ["Linear", "Quad", "Cubic", "Quart", "Quint,Strong"], o = s.length; --o > -1;) u = s[o] + ",Power" + o, x(new E(null, null, 1, o), u, "easeOut", !0), x(new E(null, null, 2, o), u, "easeIn" + (0 === o ? ",easeNone" : "")), x(new E(null, null, 3, o), u, "easeInOut");
			S.linear = c.easing.Linear.easeIn, S.swing = c.easing.Quad.easeInOut;
			var T = b("events.EventDispatcher", function(e) {
				this._listeners = {}, this._eventTarget = e || this
			});
			u = T.prototype, u.addEventListener = function(e, t, n, r, i) {
				i = i || 0;
				var s, o, u = this._listeners[e],
					l = 0;
				for(this !== a || f || a.wake(), null == u && (this._listeners[e] = u = []), o = u.length; --o > -1;) s = u[o], s.c === t && s.s === n ? u.splice(o, 1) : 0 === l && s.pr < i && (l = o + 1);
				u.splice(l, 0, {
					c: t,
					s: n,
					up: r,
					pr: i
				})
			}, u.removeEventListener = function(e, t) {
				var n, r = this._listeners[e];
				if(r)
					for(n = r.length; --n > -1;)
						if(r[n].c === t) return void r.splice(n, 1)
			}, u.dispatchEvent = function(e) {
				var t, n, r, i = this._listeners[e];
				if(i)
					for(t = i.length, t > 1 && (i = i.slice(0)), n = this._eventTarget; --t > -1;) r = i[t], r && (r.up ? r.c.call(r.s || n, {
						type: e,
						target: n
					}) : r.c.call(r.s || n))
			};
			var N = e.requestAnimationFrame,
				C = e.cancelAnimationFrame,
				k = Date.now || function() {
					return(new Date).getTime()
				},
				L = k();
			for(s = ["ms", "moz", "webkit", "o"], o = s.length; --o > -1 && !N;) N = e[s[o] + "RequestAnimationFrame"], C = e[s[o] + "CancelAnimationFrame"] || e[s[o] + "CancelRequestAnimationFrame"];
			b("Ticker", function(e, t) {
				var n, i, s, o, u, l = this,
					c = k(),
					p = t !== !1 && N ? "auto" : !1,
					v = 500,
					m = 33,
					g = "tick",
					y = function(e) {
						var t, r, a = k() - L;
						a > v && (c += a - m), L += a, l.time = (L - c) / 1e3, t = l.time - u, (!n || t > 0 || e === !0) && (l.frame++, u += t + (t >= o ? .004 : o - t), r = !0), e !== !0 && (s = i(y)), r && l.dispatchEvent(g)
					};
				T.call(l), l.time = l.frame = 0, l.tick = function() {
					y(!0)
				}, l.lagSmoothing = function(e, t) {
					v = e || 1 / h, m = Math.min(t, v, 0)
				}, l.sleep = function() {
					null != s && (p && C ? C(s) : clearTimeout(s), i = d, s = null, l === a && (f = !1))
				}, l.wake = function(e) {
					null !== s ? l.sleep() : e ? c += -L + (L = k()) : l.frame > 10 && (L = k() - v + 5), i = 0 === n ? d : p && N ? N : function(e) {
						return setTimeout(e, 1e3 * (u - l.time) + 1 | 0)
					}, l === a && (f = !0), y(2)
				}, l.fps = function(e) {
					return arguments.length ? (n = e, o = 1 / (n || 60), u = this.time + o, void l.wake()) : n
				}, l.useRAF = function(e) {
					return arguments.length ? (l.sleep(), p = e, void l.fps(n)) : p
				}, l.fps(e), setTimeout(function() {
					"auto" === p && l.frame < 5 && "hidden" !== r.visibilityState && l.useRAF(!1)
				}, 1500)
			}), u = c.Ticker.prototype = new c.events.EventDispatcher, u.constructor = c.Ticker;
			var A = b("core.Animation", function(e, t) {
				if(this.vars = t = t || {}, this._duration = this._totalDuration = e || 0, this._delay = Number(t.delay) || 0, this._timeScale = 1, this._active = t.immediateRender === !0, this.data = t.data, this._reversed = t.reversed === !0, K) {
					f || a.wake();
					var n = this.vars.useFrames ? J : K;
					n.add(this, n._time), this.vars.paused && this.paused(!0)
				}
			});
			a = A.ticker = new c.Ticker, u = A.prototype, u._dirty = u._gc = u._initted = u._paused = !1, u._totalTime = u._time = 0, u._rawPrevTime = -1, u._next = u._last = u._onUpdate = u._timeline = u.timeline = null, u._paused = !1;
			var O = function() {
				f && k() - L > 2e3 && "hidden" !== r.visibilityState && a.wake();
				var e = setTimeout(O, 2e3);
				e.unref && e.unref()
			};
			O(), u.play = function(e, t) {
				return null != e && this.seek(e, t), this.reversed(!1).paused(!1)
			}, u.pause = function(e, t) {
				return null != e && this.seek(e, t), this.paused(!0)
			}, u.resume = function(e, t) {
				return null != e && this.seek(e, t), this.paused(!1)
			}, u.seek = function(e, t) {
				return this.totalTime(Number(e), t !== !1)
			}, u.restart = function(e, t) {
				return this.reversed(!1).paused(!1).totalTime(e ? -this._delay : 0, t !== !1, !0)
			}, u.reverse = function(e, t) {
				return null != e && this.seek(e || this.totalDuration(), t), this.reversed(!0).paused(!1)
			}, u.render = function(e, t, n) {}, u.invalidate = function() {
				return this._time = this._totalTime = 0, this._initted = this._gc = !1, this._rawPrevTime = -1, (this._gc || !this.timeline) && this._enabled(!0), this
			}, u.isActive = function() {
				var e, t = this._timeline,
					n = this._startTime;
				return !t || !this._gc && !this._paused && t.isActive() && (e = t.rawTime(!0)) >= n && e < n + this.totalDuration() / this._timeScale - 1e-7
			}, u._enabled = function(e, t) {
				return f || a.wake(), this._gc = !e, this._active = this.isActive(), t !== !0 && (e && !this.timeline ? this._timeline.add(this, this._startTime - this._delay) : !e && this.timeline && this._timeline._remove(this, !0)), !1
			}, u._kill = function(e, t) {
				return this._enabled(!1, !1)
			}, u.kill = function(e, t) {
				return this._kill(e, t), this
			}, u._uncache = function(e) {
				for(var t = e ? this : this.timeline; t;) t._dirty = !0, t = t.timeline;
				return this
			}, u._swapSelfInParams = function(e) {
				for(var t = e.length, n = e.concat(); --t > -1;) "{self}" === e[t] && (n[t] = this);
				return n
			}, u._callback = function(e) {
				var t = this.vars,
					n = t[e],
					r = t[e + "Params"],
					i = t[e + "Scope"] || t.callbackScope || this,
					s = r ? r.length : 0;
				switch(s) {
					case 0:
						n.call(i);
						break;
					case 1:
						n.call(i, r[0]);
						break;
					case 2:
						n.call(i, r[0], r[1]);
						break;
					default:
						n.apply(i, r)
				}
			}, u.eventCallback = function(e, t, n, r) {
				if("on" === (e || "").substr(0, 2)) {
					var i = this.vars;
					if(1 === arguments.length) return i[e];
					null == t ? delete i[e] : (i[e] = t, i[e + "Params"] = v(n) && -1 !== n.join("").indexOf("{self}") ? this._swapSelfInParams(n) : n, i[e + "Scope"] = r), "onUpdate" === e && (this._onUpdate = t)
				}
				return this
			}, u.delay = function(e) {
				return arguments.length ? (this._timeline.smoothChildTiming && this.startTime(this._startTime + e - this._delay), this._delay = e, this) : this._delay
			}, u.duration = function(e) {
				return arguments.length ? (this._duration = this._totalDuration = e, this._uncache(!0), this._timeline.smoothChildTiming && this._time > 0 && this._time < this._duration && 0 !== e && this.totalTime(this._totalTime * (e / this._duration), !0), this) : (this._dirty = !1, this._duration)
			}, u.totalDuration = function(e) {
				return this._dirty = !1, arguments.length ? this.duration(e) : this._totalDuration
			}, u.time = function(e, t) {
				return arguments.length ? (this._dirty && this.totalDuration(), this.totalTime(e > this._duration ? this._duration : e, t)) : this._time
			}, u.totalTime = function(e, t, n) {
				if(f || a.wake(), !arguments.length) return this._totalTime;
				if(this._timeline) {
					if(0 > e && !n && (e += this.totalDuration()), this._timeline.smoothChildTiming) {
						this._dirty && this.totalDuration();
						var r = this._totalDuration,
							i = this._timeline;
						if(e > r && !n && (e = r), this._startTime = (this._paused ? this._pauseTime : i._time) - (this._reversed ? r - e : e) / this._timeScale, i._dirty || this._uncache(!1), i._timeline)
							for(; i._timeline;) i._timeline._time !== (i._startTime + i._totalTime) / i._timeScale && i.totalTime(i._totalTime, !0), i = i._timeline
					}
					this._gc && this._enabled(!0, !1), (this._totalTime !== e || 0 === this._duration) && (H.length && G(), this.render(e, t, !1), H.length && G())
				}
				return this
			}, u.progress = u.totalProgress = function(e, t) {
				var n = this.duration();
				return arguments.length ? this.totalTime(n * e, t) : n ? this._time / n : this.ratio
			}, u.startTime = function(e) {
				return arguments.length ? (e !== this._startTime && (this._startTime = e, this.timeline && this.timeline._sortChildren && this.timeline.add(this, e - this._delay)), this) : this._startTime
			}, u.endTime = function(e) {
				return this._startTime + (0 != e ? this.totalDuration() : this.duration()) / this._timeScale
			}, u.timeScale = function(e) {
				if(!arguments.length) return this._timeScale;
				if(e = e || h, this._timeline && this._timeline.smoothChildTiming) {
					var t = this._pauseTime,
						n = t || 0 === t ? t : this._timeline.totalTime();
					this._startTime = n - (n - this._startTime) * this._timeScale / e
				}
				return this._timeScale = e, this._uncache(!1)
			}, u.reversed = function(e) {
				return arguments.length ? (e != this._reversed && (this._reversed = e, this.totalTime(this._timeline && !this._timeline.smoothChildTiming ? this.totalDuration() - this._totalTime : this._totalTime, !0)), this) : this._reversed
			}, u.paused = function(e) {
				if(!arguments.length) return this._paused;
				var t, n, r = this._timeline;
				return e != this._paused && r && (f || e || a.wake(), t = r.rawTime(), n = t - this._pauseTime, !e && r.smoothChildTiming && (this._startTime += n, this._uncache(!1)), this._pauseTime = e ? t : null, this._paused = e, this._active = this.isActive(), !e && 0 !== n && this._initted && this.duration() && (t = r.smoothChildTiming ? this._totalTime : (t - this._startTime) / this._timeScale, this.render(t, t === this._totalTime, !0))), this._gc && !e && this._enabled(!0, !1), this
			};
			var M = b("core.SimpleTimeline", function(e) {
				A.call(this, 0, e), this.autoRemoveChildren = this.smoothChildTiming = !0
			});
			u = M.prototype = new A, u.constructor = M, u.kill()._gc = !1, u._first = u._last = u._recent = null, u._sortChildren = !1, u.add = u.insert = function(e, t, n, r) {
				var i, s;
				if(e._startTime = Number(t || 0) + e._delay, e._paused && this !== e._timeline && (e._pauseTime = e._startTime + (this.rawTime() - e._startTime) / e._timeScale), e.timeline && e.timeline._remove(e, !0), e.timeline = e._timeline = this, e._gc && e._enabled(!0, !0), i = this._last, this._sortChildren)
					for(s = e._startTime; i && i._startTime > s;) i = i._prev;
				return i ? (e._next = i._next, i._next = e) : (e._next = this._first, this._first = e), e._next ? e._next._prev = e : this._last = e, e._prev = i, this._recent = e, this._timeline && this._uncache(!0), this
			}, u._remove = function(e, t) {
				return e.timeline === this && (t || e._enabled(!1, !0), e._prev ? e._prev._next = e._next : this._first === e && (this._first = e._next), e._next ? e._next._prev = e._prev : this._last === e && (this._last = e._prev), e._next = e._prev = e.timeline = null, e === this._recent && (this._recent = this._last), this._timeline && this._uncache(!0)), this
			}, u.render = function(e, t, n) {
				var r, i = this._first;
				for(this._totalTime = this._time = this._rawPrevTime = e; i;) r = i._next, (i._active || e >= i._startTime && !i._paused && !i._gc) && (i._reversed ? i.render((i._dirty ? i.totalDuration() : i._totalDuration) - (e - i._startTime) * i._timeScale, t, n) : i.render((e - i._startTime) * i._timeScale, t, n)), i = r
			}, u.rawTime = function() {
				return f || a.wake(), this._totalTime
			};
			var _ = b("TweenLite", function(t, n, r) {
					if(A.call(this, n, r), this.render = _.prototype.render, null == t) throw "Cannot tween a null target.";
					this.target = t = "string" != typeof t ? t : _.selector(t) || t;
					var i, s, o, u = t.jquery || t.length && t !== e && t[0] && (t[0] === e || t[0].nodeType && t[0].style && !t.nodeType),
						a = this.vars.overwrite;
					if(this._overwrite = a = null == a ? $[_.defaultOverwrite] : "number" == typeof a ? a >> 0 : $[a], (u || t instanceof Array || t.push && v(t)) && "number" != typeof t[0])
						for(this._targets = o = p(t), this._propLookup = [], this._siblings = [], i = 0; i < o.length; i++) s = o[i], s ? "string" != typeof s ? s.length && s !== e && s[0] && (s[0] === e || s[0].nodeType && s[0].style && !s.nodeType) ? (o.splice(i--, 1), this._targets = o = o.concat(p(s))) : (this._siblings[i] = Y(s, this, !1), 1 === a && this._siblings[i].length > 1 && et(s, this, null, 1, this._siblings[i])) : (s = o[i--] = _.selector(s), "string" == typeof s && o.splice(i + 1, 1)) : o.splice(i--, 1);
					else this._propLookup = {}, this._siblings = Y(t, this, !1), 1 === a && this._siblings.length > 1 && et(t, this, null, 1, this._siblings);
					(this.vars.immediateRender || 0 === n && 0 === this._delay && this.vars.immediateRender !== !1) && (this._time = -h, this.render(Math.min(0, -this._delay)))
				}, !0),
				D = function(t) {
					return t && t.length && t !== e && t[0] && (t[0] === e || t[0].nodeType && t[0].style && !t.nodeType)
				},
				P = function(e, t) {
					var n, r = {};
					for(n in e) V[n] || n in t && "transform" !== n && "x" !== n && "y" !== n && "width" !== n && "height" !== n && "className" !== n && "border" !== n || !(!z[n] || z[n] && z[n]._autoCSS) || (r[n] = e[n], delete e[n]);
					e.css = r
				};
			u = _.prototype = new A, u.constructor = _, u.kill()._gc = !1, u.ratio = 0, u._firstPT = u._targets = u._overwrittenProps = u._startAt = null, u._notifyPluginsOfEnabled = u._lazy = !1, _.version = "1.20.2", _.defaultEase = u._ease = new E(null, null, 1, 1), _.defaultOverwrite = "auto", _.ticker = a, _.autoSleep = 120, _.lagSmoothing = function(e, t) {
				a.lagSmoothing(e, t)
			}, _.selector = e.$ || e.jQuery || function(t) {
				var n = e.$ || e.jQuery;
				return n ? (_.selector = n, n(t)) : "undefined" == typeof r ? t : r.querySelectorAll ? r.querySelectorAll(t) : r.getElementById("#" === t.charAt(0) ? t.substr(1) : t)
			};
			var H = [],
				B = {},
				j = /(?:(-|-=|\+=)?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/gi,
				F = /[\+-]=-?[\.\d]/,
				I = function(e) {
					for(var t, n = this._firstPT, r = 1e-6; n;) t = n.blob ? 1 === e && this.end ? this.end : e ? this.join("") : this.start : n.c * e + n.s, n.m ? t = n.m(t, this._target || n.t) : r > t && t > -r && !n.blob && (t = 0), n.f ? n.fp ? n.t[n.p](n.fp, t) : n.t[n.p](t) : n.t[n.p] = t, n = n._next
				},
				q = function(e, t, n, r) {
					var i, s, o, u, a, f, l, c = [],
						h = 0,
						p = "",
						d = 0;
					for(c.start = e, c.end = t, e = c[0] = e + "", t = c[1] = t + "", n && (n(c), e = c[0], t = c[1]), c.length = 0, i = e.match(j) || [], s = t.match(j) || [], r && (r._next = null, r.blob = 1, c._firstPT = c._applyPT = r), a = s.length, u = 0; a > u; u++) l = s[u], f = t.substr(h, t.indexOf(l, h) - h), p += f || !u ? f : ",", h += f.length, d ? d = (d + 1) % 5 : "rgba(" === f.substr(-5) && (d = 1), l === i[u] || i.length <= u ? p += l : (p && (c.push(p), p = ""), o = parseFloat(i[u]), c.push(o), c._firstPT = {
						_next: c._firstPT,
						t: c,
						p: c.length - 1,
						s: o,
						c: ("=" === l.charAt(1) ? parseInt(l.charAt(0) + "1", 10) * parseFloat(l.substr(2)) : parseFloat(l) - o) || 0,
						f: 0,
						m: d && 4 > d ? Math.round : 0
					}), h += l.length;
					return p += t.substr(h), p && c.push(p), c.setRatio = I, F.test(t) && (c.end = 0), c
				},
				R = function(e, t, n, r, i, s, o, u, a) {
					"function" == typeof r && (r = r(a || 0, e));
					var f, l = typeof e[t],
						c = "function" !== l ? "" : t.indexOf("set") || "function" != typeof e["get" + t.substr(3)] ? t : "get" + t.substr(3),
						h = "get" !== n ? n : c ? o ? e[c](o) : e[c]() : e[t],
						p = "string" == typeof r && "=" === r.charAt(1),
						d = {
							t: e,
							p: t,
							s: h,
							f: "function" === l,
							pg: 0,
							n: i || t,
							m: s ? "function" == typeof s ? s : Math.round : 0,
							pr: 0,
							c: p ? parseInt(r.charAt(0) + "1", 10) * parseFloat(r.substr(2)) : parseFloat(r) - h || 0
						};
					return("number" != typeof h || "number" != typeof r && !p) && (o || isNaN(h) || !p && isNaN(r) || "boolean" == typeof h || "boolean" == typeof r ? (d.fp = o, f = q(h, p ? parseFloat(d.s) + d.c : r, u || _.defaultStringFilter, d), d = {
						t: f,
						p: "setRatio",
						s: 0,
						c: 1,
						f: 2,
						pg: 0,
						n: i || t,
						pr: 0,
						m: 0
					}) : (d.s = parseFloat(h), p || (d.c = parseFloat(r) - d.s || 0))), d.c ? ((d._next = this._firstPT) && (d._next._prev = d), this._firstPT = d, d) : void 0
				},
				U = _._internals = {
					isArray: v,
					isSelector: D,
					lazyTweens: H,
					blobDif: q
				},
				z = _._plugins = {},
				W = U.tweenLookup = {},
				X = 0,
				V = U.reservedProps = {
					ease: 1,
					delay: 1,
					overwrite: 1,
					onComplete: 1,
					onCompleteParams: 1,
					onCompleteScope: 1,
					useFrames: 1,
					runBackwards: 1,
					startAt: 1,
					onUpdate: 1,
					onUpdateParams: 1,
					onUpdateScope: 1,
					onStart: 1,
					onStartParams: 1,
					onStartScope: 1,
					onReverseComplete: 1,
					onReverseCompleteParams: 1,
					onReverseCompleteScope: 1,
					onRepeat: 1,
					onRepeatParams: 1,
					onRepeatScope: 1,
					easeParams: 1,
					yoyo: 1,
					immediateRender: 1,
					repeat: 1,
					repeatDelay: 1,
					data: 1,
					paused: 1,
					reversed: 1,
					autoCSS: 1,
					lazy: 1,
					onOverwrite: 1,
					callbackScope: 1,
					stringFilter: 1,
					id: 1,
					yoyoEase: 1
				},
				$ = {
					none: 0,
					all: 1,
					auto: 2,
					concurrent: 3,
					allOnStart: 4,
					preexisting: 5,
					"true": 1,
					"false": 0
				},
				J = A._rootFramesTimeline = new M,
				K = A._rootTimeline = new M,
				Q = 30,
				G = U.lazyRender = function() {
					var e, t = H.length;
					for(B = {}; --t > -1;) e = H[t], e && e._lazy !== !1 && (e.render(e._lazy[0], e._lazy[1], !0), e._lazy = !1);
					H.length = 0
				};
			K._startTime = a.time, J._startTime = a.frame, K._active = J._active = !0, setTimeout(G, 1), A._updateRoot = _.render = function() {
				var e, t, n;
				if(H.length && G(), K.render((a.time - K._startTime) * K._timeScale, !1, !1), J.render((a.frame - J._startTime) * J._timeScale, !1, !1), H.length && G(), a.frame >= Q) {
					Q = a.frame + (parseInt(_.autoSleep, 10) || 120);
					for(n in W) {
						for(t = W[n].tweens, e = t.length; --e > -1;) t[e]._gc && t.splice(e, 1);
						0 === t.length && delete W[n]
					}
					if(n = K._first, (!n || n._paused) && _.autoSleep && !J._first && 1 === a._listeners.tick.length) {
						for(; n && n._paused;) n = n._next;
						n || a.sleep()
					}
				}
			}, a.addEventListener("tick", A._updateRoot);
			var Y = function(e, t, n) {
					var r, i, s = e._gsTweenID;
					if(W[s || (e._gsTweenID = s = "t" + X++)] || (W[s] = {
							target: e,
							tweens: []
						}), t && (r = W[s].tweens, r[i = r.length] = t, n))
						for(; --i > -1;) r[i] === t && r.splice(i, 1);
					return W[s].tweens
				},
				Z = function(e, t, n, r) {
					var i, s, o = e.vars.onOverwrite;
					return o && (i = o(e, t, n, r)), o = _.onOverwrite, o && (s = o(e, t, n, r)), i !== !1 && s !== !1
				},
				et = function(e, t, n, r, i) {
					var s, o, u, a;
					if(1 === r || r >= 4) {
						for(a = i.length, s = 0; a > s; s++)
							if((u = i[s]) !== t) u._gc || u._kill(null, e, t) && (o = !0);
							else if(5 === r) break;
						return o
					}
					var f, l = t._startTime + h,
						c = [],
						p = 0,
						d = 0 === t._duration;
					for(s = i.length; --s > -1;)(u = i[s]) === t || u._gc || u._paused || (u._timeline !== t._timeline ? (f = f || tt(t, 0, d), 0 === tt(u, f, d) && (c[p++] = u)) : u._startTime <= l && u._startTime + u.totalDuration() / u._timeScale > l && ((d || !u._initted) && l - u._startTime <= 2e-10 || (c[p++] = u)));
					for(s = p; --s > -1;)
						if(u = c[s], 2 === r && u._kill(n, e, t) && (o = !0), 2 !== r || !u._firstPT && u._initted) {
							if(2 !== r && !Z(u, t)) continue;
							u._enabled(!1, !1) && (o = !0)
						}
					return o
				},
				tt = function(e, t, n) {
					for(var r = e._timeline, i = r._timeScale, s = e._startTime; r._timeline;) {
						if(s += r._startTime, i *= r._timeScale, r._paused) return -100;
						r = r._timeline
					}
					return s /= i, s > t ? s - t : n && s === t || !e._initted && 2 * h > s - t ? h : (s += e.totalDuration() / e._timeScale / i) > t + h ? 0 : s - t - h
				};
			u._init = function() {
				var e, t, n, r, i, s, o = this.vars,
					u = this._overwrittenProps,
					a = this._duration,
					f = !!o.immediateRender,
					l = o.ease;
				if(o.startAt) {
					this._startAt && (this._startAt.render(-1, !0), this._startAt.kill()), i = {};
					for(r in o.startAt) i[r] = o.startAt[r];
					if(i.overwrite = !1, i.immediateRender = !0, i.lazy = f && o.lazy !== !1, i.startAt = i.delay = null, i.onUpdate = o.onUpdate, i.onUpdateScope = o.onUpdateScope || o.callbackScope || this, this._startAt = _.to(this.target, 0, i), f)
						if(this._time > 0) this._startAt = null;
						else if(0 !== a) return
				} else if(o.runBackwards && 0 !== a)
					if(this._startAt) this._startAt.render(-1, !0), this._startAt.kill(), this._startAt = null;
					else {
						0 !== this._time && (f = !1), n = {};
						for(r in o) V[r] && "autoCSS" !== r || (n[r] = o[r]);
						if(n.overwrite = 0, n.data = "isFromStart", n.lazy = f && o.lazy !== !1, n.immediateRender = f, this._startAt = _.to(this.target, 0, n), f) {
							if(0 === this._time) return
						} else this._startAt._init(), this._startAt._enabled(!1), this.vars.immediateRender && (this._startAt = null)
					}
				if(this._ease = l = l ? l instanceof E ? l : "function" == typeof l ? new E(l, o.easeParams) : S[l] || _.defaultEase : _.defaultEase, o.easeParams instanceof Array && l.config && (this._ease = l.config.apply(l, o.easeParams)), this._easeType = this._ease._type, this._easePower = this._ease._power, this._firstPT = null, this._targets)
					for(s = this._targets.length, e = 0; s > e; e++) this._initProps(this._targets[e], this._propLookup[e] = {}, this._siblings[e], u ? u[e] : null, e) && (t = !0);
				else t = this._initProps(this.target, this._propLookup, this._siblings, u, 0);
				if(t && _._onPluginEvent("_onInitAllProps", this), u && (this._firstPT || "function" != typeof this.target && this._enabled(!1, !1)), o.runBackwards)
					for(n = this._firstPT; n;) n.s += n.c, n.c = -n.c, n = n._next;
				this._onUpdate = o.onUpdate, this._initted = !0
			}, u._initProps = function(t, n, r, i, s) {
				var o, u, a, f, l, c;
				if(null == t) return !1;
				B[t._gsTweenID] && G(), this.vars.css || t.style && t !== e && t.nodeType && z.css && this.vars.autoCSS !== !1 && P(this.vars, t);
				for(o in this.vars)
					if(c = this.vars[o], V[o]) c && (c instanceof Array || c.push && v(c)) && -1 !== c.join("").indexOf("{self}") && (this.vars[o] = c = this._swapSelfInParams(c, this));
					else if(z[o] && (f = new z[o])._onInitTween(t, this.vars[o], this, s)) {
					for(this._firstPT = l = {
							_next: this._firstPT,
							t: f,
							p: "setRatio",
							s: 0,
							c: 1,
							f: 1,
							n: o,
							pg: 1,
							pr: f._priority,
							m: 0
						}, u = f._overwriteProps.length; --u > -1;) n[f._overwriteProps[u]] = this._firstPT;
					(f._priority || f._onInitAllProps) && (a = !0), (f._onDisable || f._onEnable) && (this._notifyPluginsOfEnabled = !0), l._next && (l._next._prev = l)
				} else n[o] = R.call(this, t, o, "get", c, o, 0, null, this.vars.stringFilter, s);
				return i && this._kill(i, t) ? this._initProps(t, n, r, i, s) : this._overwrite > 1 && this._firstPT && r.length > 1 && et(t, this, n, this._overwrite, r) ? (this._kill(n, t), this._initProps(t, n, r, i, s)) : (this._firstPT && (this.vars.lazy !== !1 && this._duration || this.vars.lazy && !this._duration) && (B[t._gsTweenID] = !0), a)
			}, u.render = function(e, t, n) {
				var r, i, s, o, u = this._time,
					a = this._duration,
					f = this._rawPrevTime;
				if(e >= a - 1e-7 && e >= 0) this._totalTime = this._time = a, this.ratio = this._ease._calcEnd ? this._ease.getRatio(1) : 1, this._reversed || (r = !0, i = "onComplete", n = n || this._timeline.autoRemoveChildren), 0 === a && (this._initted || !this.vars.lazy || n) && (this._startTime === this._timeline._duration && (e = 0), (0 > f || 0 >= e && e >= -1e-7 || f === h && "isPause" !== this.data) && f !== e && (n = !0, f > h && (i = "onReverseComplete")), this._rawPrevTime = o = !t || e || f === e ? e : h);
				else if(1e-7 > e) this._totalTime = this._time = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0, (0 !== u || 0 === a && f > 0) && (i = "onReverseComplete", r = this._reversed), 0 > e && (this._active = !1, 0 === a && (this._initted || !this.vars.lazy || n) && (f >= 0 && (f !== h || "isPause" !== this.data) && (n = !0), this._rawPrevTime = o = !t || e || f === e ? e : h)), (!this._initted || this._startAt && this._startAt.progress()) && (n = !0);
				else if(this._totalTime = this._time = e, this._easeType) {
					var l = e / a,
						c = this._easeType,
						p = this._easePower;
					(1 === c || 3 === c && l >= .5) && (l = 1 - l), 3 === c && (l *= 2), 1 === p ? l *= l : 2 === p ? l *= l * l : 3 === p ? l *= l * l * l : 4 === p && (l *= l * l * l * l), 1 === c ? this.ratio = 1 - l : 2 === c ? this.ratio = l : .5 > e / a ? this.ratio = l / 2 : this.ratio = 1 - l / 2
				} else this.ratio = this._ease.getRatio(e / a);
				if(this._time !== u || n) {
					if(!this._initted) {
						if(this._init(), !this._initted || this._gc) return;
						if(!n && this._firstPT && (this.vars.lazy !== !1 && this._duration || this.vars.lazy && !this._duration)) return this._time = this._totalTime = u, this._rawPrevTime = f, H.push(this), void(this._lazy = [e, t]);
						this._time && !r ? this.ratio = this._ease.getRatio(this._time / a) : r && this._ease._calcEnd && (this.ratio = this._ease.getRatio(0 === this._time ? 0 : 1))
					}
					for(this._lazy !== !1 && (this._lazy = !1), this._active || !this._paused && this._time !== u && e >= 0 && (this._active = !0), 0 === u && (this._startAt && (e >= 0 ? this._startAt.render(e, t, n) : i || (i = "_dummyGS")), this.vars.onStart && (0 !== this._time || 0 === a) && (t || this._callback("onStart"))), s = this._firstPT; s;) s.f ? s.t[s.p](s.c * this.ratio + s.s) : s.t[s.p] = s.c * this.ratio + s.s, s = s._next;
					this._onUpdate && (0 > e && this._startAt && e !== -0.0001 && this._startAt.render(e, t, n), t || (this._time !== u || r || n) && this._callback("onUpdate")), i && (!this._gc || n) && (0 > e && this._startAt && !this._onUpdate && e !== -0.0001 && this._startAt.render(e, t, n), r && (this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !t && this.vars[i] && this._callback(i), 0 === a && this._rawPrevTime === h && o !== h && (this._rawPrevTime = 0))
				}
			}, u._kill = function(e, t, n) {
				if("all" === e && (e = null), null != e || null != t && t !== this.target) {
					t = "string" != typeof t ? t || this._targets || this.target : _.selector(t) || t;
					var r, i, s, o, u, a, f, l, c, h = n && this._time && n._startTime === this._startTime && this._timeline === n._timeline;
					if((v(t) || D(t)) && "number" != typeof t[0])
						for(r = t.length; --r > -1;) this._kill(e, t[r], n) && (a = !0);
					else {
						if(this._targets) {
							for(r = this._targets.length; --r > -1;)
								if(t === this._targets[r]) {
									u = this._propLookup[r] || {}, this._overwrittenProps = this._overwrittenProps || [], i = this._overwrittenProps[r] = e ? this._overwrittenProps[r] || {} : "all";
									break
								}
						} else {
							if(t !== this.target) return !1;
							u = this._propLookup, i = this._overwrittenProps = e ? this._overwrittenProps || {} : "all"
						}
						if(u) {
							if(f = e || u, l = e !== i && "all" !== i && e !== u && ("object" != typeof e || !e._tempKill), n && (_.onOverwrite || this.vars.onOverwrite)) {
								for(s in f) u[s] && (c || (c = []), c.push(s));
								if((c || !e) && !Z(this, n, t, c)) return !1
							}
							for(s in f)(o = u[s]) && (h && (o.f ? o.t[o.p](o.s) : o.t[o.p] = o.s, a = !0), o.pg && o.t._kill(f) && (a = !0), o.pg && 0 !== o.t._overwriteProps.length || (o._prev ? o._prev._next = o._next : o === this._firstPT && (this._firstPT = o._next), o._next && (o._next._prev = o._prev), o._next = o._prev = null), delete u[s]), l && (i[s] = 1);
							!this._firstPT && this._initted && this._enabled(!1, !1)
						}
					}
					return a
				}
				return this._lazy = !1, this._enabled(!1, !1)
			}, u.invalidate = function() {
				return this._notifyPluginsOfEnabled && _._onPluginEvent("_onDisable", this), this._firstPT = this._overwrittenProps = this._startAt = this._onUpdate = null, this._notifyPluginsOfEnabled = this._active = this._lazy = !1, this._propLookup = this._targets ? {} : [], A.prototype.invalidate.call(this), this.vars.immediateRender && (this._time = -h, this.render(Math.min(0, -this._delay))), this
			}, u._enabled = function(e, t) {
				if(f || a.wake(), e && this._gc) {
					var n, r = this._targets;
					if(r)
						for(n = r.length; --n > -1;) this._siblings[n] = Y(r[n], this, !0);
					else this._siblings = Y(this.target, this, !0)
				}
				return A.prototype._enabled.call(this, e, t), this._notifyPluginsOfEnabled && this._firstPT ? _._onPluginEvent(e ? "_onEnable" : "_onDisable", this) : !1
			}, _.to = function(e, t, n) {
				return new _(e, t, n)
			}, _.from = function(e, t, n) {
				return n.runBackwards = !0, n.immediateRender = 0 != n.immediateRender, new _(e, t, n)
			}, _.fromTo = function(e, t, n, r) {
				return r.startAt = n, r.immediateRender = 0 != r.immediateRender && 0 != n.immediateRender, new _(e, t, r)
			}, _.delayedCall = function(e, t, n, r, i) {
				return new _(t, 0, {
					delay: e,
					onComplete: t,
					onCompleteParams: n,
					callbackScope: r,
					onReverseComplete: t,
					onReverseCompleteParams: n,
					immediateRender: !1,
					lazy: !1,
					useFrames: i,
					overwrite: 0
				})
			}, _.set = function(e, t) {
				return new _(e, 0, t)
			}, _.getTweensOf = function(e, t) {
				if(null == e) return [];
				e = "string" != typeof e ? e : _.selector(e) || e;
				var n, r, i, s;
				if((v(e) || D(e)) && "number" != typeof e[0]) {
					for(n = e.length, r = []; --n > -1;) r = r.concat(_.getTweensOf(e[n], t));
					for(n = r.length; --n > -1;)
						for(s = r[n], i = n; --i > -1;) s === r[i] && r.splice(n, 1)
				} else if(e._gsTweenID)
					for(r = Y(e).concat(), n = r.length; --n > -1;)(r[n]._gc || t && !r[n].isActive()) && r.splice(n, 1);
				return r || []
			}, _.killTweensOf = _.killDelayedCallsTo = function(e, t, n) {
				"object" == typeof t && (n = t, t = !1);
				for(var r = _.getTweensOf(e, t), i = r.length; --i > -1;) r[i]._kill(n, e)
			};
			var nt = b("plugins.TweenPlugin", function(e, t) {
				this._overwriteProps = (e || "").split(","), this._propName = this._overwriteProps[0], this._priority = t || 0, this._super = nt.prototype
			}, !0);
			if(u = nt.prototype, nt.version = "1.19.0", nt.API = 2, u._firstPT = null, u._addTween = R, u.setRatio = I, u._kill = function(e) {
					var t, n = this._overwriteProps,
						r = this._firstPT;
					if(null != e[this._propName]) this._overwriteProps = [];
					else
						for(t = n.length; --t > -1;) null != e[n[t]] && n.splice(t, 1);
					for(; r;) null != e[r.n] && (r._next && (r._next._prev = r._prev), r._prev ? (r._prev._next = r._next, r._prev = null) : this._firstPT === r && (this._firstPT = r._next)), r = r._next;
					return !1
				}, u._mod = u._roundProps = function(e) {
					for(var t, n = this._firstPT; n;) t = e[this._propName] || null != n.n && e[n.n.split(this._propName + "_").join("")], t && "function" == typeof t && (2 === n.f ? n.t._applyPT.m = t : n.m = t), n = n._next
				}, _._onPluginEvent = function(e, t) {
					var n, r, i, s, o, u = t._firstPT;
					if("_onInitAllProps" === e) {
						for(; u;) {
							for(o = u._next, r = i; r && r.pr > u.pr;) r = r._next;
							(u._prev = r ? r._prev : s) ? u._prev._next = u: i = u, (u._next = r) ? r._prev = u : s = u, u = o
						}
						u = t._firstPT = i
					}
					for(; u;) u.pg && "function" == typeof u.t[e] && u.t[e]() && (n = !0), u = u._next;
					return n
				}, nt.activate = function(e) {
					for(var t = e.length; --t > -1;) e[t].API === nt.API && (z[(new e[t])._propName] = e[t]);
					return !0
				}, y.plugin = function(e) {
					if(!(e && e.propName && e.init && e.API)) throw "illegal plugin definition.";
					var t, n = e.propName,
						r = e.priority || 0,
						i = e.overwriteProps,
						s = {
							init: "_onInitTween",
							set: "setRatio",
							kill: "_kill",
							round: "_mod",
							mod: "_mod",
							initAll: "_onInitAllProps"
						},
						o = b("plugins." + n.charAt(0).toUpperCase() + n.substr(1) + "Plugin", function() {
							nt.call(this, n, r), this._overwriteProps = i || []
						}, e.global === !0),
						u = o.prototype = new nt(n);
					u.constructor = o, o.API = e.API;
					for(t in s) "function" == typeof e[t] && (u[s[t]] = e[t]);
					return o.version = e.version, nt.activate([o]), o
				}, s = e._gsQueue) {
				for(o = 0; o < s.length; o++) s[o]();
				for(u in m) m[u].func || e.console.log("GSAP encountered missing dependency: " + u)
			}
			f = !1
		}
	}("undefined" != typeof module && module.exports && "undefined" != typeof global ? global : this || window, "TweenMax")
